|
I don't clear what you want but i think you wanna to load the addin when you want it
in the addin .rgs file we have the addin dll registration having option LoadBehavior where you can specify your possible loading behaviors
Regards
Laxman
Knock out "T" from CAN'T
You 'CAN' if you think you 'CAN'
|
|
|
|
|
Greetings,
I am building a VB.NET dll to respond to the click event of a custom button added to IE's toolbar. In response to the button click the .dll will print the current page to a specific printer without the user needing to choose it from the print dialog.
I am implementing the IObjectWithSite interface to handle acquiring a reference to the browser. And I am implementing the IOLECommandTarget interface in order to receive the click notification via the Exec method.
If I set up the registry entries under "Browser Helper Objects" my .dll is being properly instantiated by IE when it loads, and I am successfully acquiring a reference to the browser with "wb = CType(pUnkSite, SHDocVw.IWebBroswer2)" in the SetSite method of IObjectWithSite.
However, upon clicking the custom toolbar button, the SetSite method is apparently called again, and I encounter the following error when attempting to acquire the broswer reference:
Unable to cast COM object of type 'System.__ComObject' to interface type 'SHDocVw.IWebBrowser2'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{D30C1661-CDAF-11D0-8A3E-00C04FC9E26E}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
Any ideas on why this is happening?
Thanks
|
|
|
|
|
I use CoCreateInstance(...) to create an instance of a COM/ATL DLL that I wrote, then use obj->Release() when done with it. During development I discover the only way to remove it from memory is to reboot! Is there a better way? I cannot replace the dll when its in use.
thanks
-- modified at 14:08 Wednesday 29th March, 2006
|
|
|
|
|
|
Thanks -- just what I was looking for
|
|
|
|
|
Can anyone explain what the macro _COM_SMARTPTR_TYPEDEF does?
---
With best regards,
A Manchester United Fan
The Genius of a true fool is that he can mess up a foolproof plan!
|
|
|
|
|
When you declare a code like below or when compiler generates such a code for you because of the #import statement:
_COM_SMARTPTR_TYPEDEF(ICustomInterface, __uuidof(ICustomInterface));
Compiler will expand this macro _COM_SMARTPTR_TYPEDEF into:
typedef _com_ptr_t<_com_IIID<ICustomInterface, __uuidof(ICustomInterface)> > ICustomInterfacePtr;
Then in Ur code u can use ICustomInterfacePtr as
ICustomInterfacePtr pICustomInterface(__uuidof(CustomInterface) ); // where CustomInterface is the CoClassname for ICustomInterface.
This pICustomInterface is equivalent of ICustomInterface* with the added advantage of auto addref and release . You don’t have to bother anything about the IUnknown method invocations for ICustomInterface*
cheers...mil10.
|
|
|
|
|
Thanks!
---
With best regards,
A Manchester United Fan
The Genius of a true fool is that he can mess up a foolproof plan!
|
|
|
|
|
Hello!
A little question: how to construct(or attach to) ActiveX Control wrapper class, derived from CWnd, already exist COM object presented with LPDISPATCH.
-- modified at 14:29 Tuesday 28th March, 2006
|
|
|
|
|
hi all
Following error occur in my atl com project.this project is using both the atl and mfc classes.Tool is visual studio 2003.
d:\Microsoft Visual Studio .NET\Vc7\atlmfc\include\atlcom.h(1759): error C2259: 'ATL::CComObject<base />' : cannot instantiate abstract class
with
[
Base=CMakeBarcode
]
Tasleem arif
|
|
|
|
|
I think the error has to do with implementing all the virtual functions etc. So I would suggest:
Make sure you are implementing all the virtual methods of the base class. Also make sure that the function signatures are exactly the same.
Could you post some of the relevant "Output" from the compilation. That could tell us what the error is.
this is this.
|
|
|
|
|
Hi,
I am working on Media File Steam Edition, and want to cut a file into many, and join two files. I am using DirecX9 SDK. I tried hard, but cant go on further with my own knowledge.
Can any knowledged person guide me for the same. I was working on .avi files, but now am thinking of .wmv files.
Any thing that can help me do the coding for joining and cutting media files will do.
Thanks,
Jc Shreyash Singh Parihar
|
|
|
|
|
CComObject::CreateInstance method creates new instance of CComObject<class>. Instead I want to access running instance of class, if there is any. Is it possible?
-- modified at 5:48 Tuesday 28th March, 2006
|
|
|
|
|
Try to use QueryInterface to that class
Knock out "T" from CAN'T
You 'CAN' if you think you 'CAN'
|
|
|
|
|
Y, it is one way. But I want to get instance of coclass. ie.
CComObject<CMyClass>::CreateInstance
creates new instance .
Instead I want running instance if there is already one .
May be this is not possible
-- modified at 23:23 Wednesday 29th March, 2006
|
|
|
|
|
|
Let me be reword my problem.
In ATL , class CComObject has a static method CreateInstance which gives A pointer to a CComObject<Base> pointer
In similar way , is it possible to get pointer to a running CComObject<Base> ?
I'm pasting snippet from MSDN to make it more clear.
double x;
CComObject<CMyCircle>* pCircle;
HRESULT hRes = CComObject<CMyCircle>::CreateInstance(&pCircle);
_ASSERTE(SUCCEEDED(hRes));
-- modified at 4:33 Friday 31st March, 2006
|
|
|
|
|
May be Running Object Table (ROT) will help you. Check MSDN for further details of its usage.
Have a great day ahead!
Regards,
Sohail Kadiwala
(My Blog - http://blogs.wdevs.com/sohail/[^])
modified 21-Apr-21 21:01pm.
|
|
|
|
|
I have not yet been able to test this, but I'm hoping others may shine some light on this:
Does the 64bit COM subsystem understand InprocServer64 registry keys?
|
|
|
|
|
Read Registry Redirector (Windows) and other related pages.
The basic answer is yes and no.
InProcServer32 is not reflected between 64 and 32 bit DLL registration so they can co-exist.
Keep it simple
dex
|
|
|
|
|
i am getting "Method ~of object ~ failed", when calling a ATL COM object method in my vb+ATL COM App when it is run from VB IDE, however when i run the VB App's Exe ,the vb Form doesn't generate this error:
Thanx in Advance
Z.A
-- modified at 1:12 Monday 27th March, 2006
|
|
|
|
|
How do I know that a COM dll has been created using ATL? What do I have to look for in the Source code to find out?
---
With best regards,
A Manchester United Fan
The Genius of a true fool is that he can mess up a foolproof plan!
|
|
|
|
|
|
Michael Dunn wrote: Look for _Module or CComObjectRootEx or BEGIN_COM_MAP or any other ATL base class/macro.
So you mean that if I find any of the above in the code then the dll is written using ATL?
Thanks for the prompt reply... One of the reasons why I love CP...
---
With best regards,
A Manchester United Fan
The Genius of a true fool is that he can mess up a foolproof plan!
|
|
|
|
|
hi i want to make a transform filter which has only one input but can give two output pins. if i inherit my class from CTranformFilter it give me only one output pin and one input pin.....plzzzzz help me
|
|
|
|