Instansiating a COM object in an ISAPI DLL
Thomas Steele -- tsteelemct@msn.com Thursday, January 23, 1997 Environment: MSVC++ 4.2b, Win95, NT 4.0 I am having difficulty instansiating a COM object from within a ISAPI DLL. Here is the code I am using: CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER, IID_KeEngine, (LPVOID *) &pKe) I've tried various enumerations of the CLSCTX_* parameters with no luck. I believe it may have something to do with threading models. Any help would be greatly appreciated. TomS
Kenneth A. Argo -- argo@rias.COM Friday, January 24, 1997 [Mini-digest: 3 responses] You should receive a value from CoCreateInstance which will tell you the problem. What value are you receiving ? Ken ---------- From: Thomas Steele[SMTP:tsteelemct@msn.com] Sent: Thursday, January 23, 1997 10:08 AM To: mfc-l Subject: Instansiating a COM object in an ISAPI DLL Environment: MSVC++ 4.2b, Win95, NT 4.0 I am having difficulty instansiating a COM object from within a ISAPI DLL. Here is the code I am using: CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER, IID_KeEngine, (LPVOID *) &pKe) I've tried various enumerations of the CLSCTX_* parameters with no luck. I believe it may have something to do with threading models. Any help would be greatly appreciated. TomS -----From: Mike BlaszczakAt 15:08 1/23/97 UT, Thomas Steele wrote: >Environment: MSVC++ 4.2b, Win95, NT 4.0 >I am having difficulty instansiating a COM object from within a ISAPI DLL. >Here is the code I am using: >CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | >CLSCTX_INPROC_SERVER, IID_KeEngine, (LPVOID *) &pKe) >I've tried various enumerations of the CLSCTX_* parameters with no luck. I >believe it may have something to do with threading models. >Any help would be greatly appreciated. For you to get any help, you'll need to provide at least _some_ description of your problem. Assuming everything is registered correctly, and you have the right CLSID, and you have the right IID, and you have initialized OLE properly, the above call will work just fine. What problem are you noticing? Are you finding that pKE really contains NULL? What return code are you getting from CoCreateInstance()? What behaviour are you noticing that makes you think you have no luck? .B ekiM http://www.nwlink.com/~mikeblas/ Why does the "new" Corvette look like a 1993 RX-7? These words are my own. I do not speak on behalf of Microsoft. -----From: Roma Hello, Thomas Steele wrote: > > Environment: MSVC++ 4.2b, Win95, NT 4.0 > > I am having difficulty instansiating a COM object from within a ISAPI DLL. > Here is the code I am using: > > CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | > CLSCTX_INPROC_SERVER, IID_KeEngine, (LPVOID *) &pKe) > Try the following: IUnknown *pUnk; CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER, IID_IUnknown, (LPVOID *) &pUnk); pUnk->QueryInterface(IID_KeEngine, (LPVOID *) &pKe); At least, CreateDispatch() member of the COleDispatchDriver class do retrieve IDispatch in two steps - you can check it in file oledisp2.cpp, line 78. -Roma
Bing Hou -- hou@tfn.com Monday, January 27, 1997 Thomas, I don't know if your ISAPI DLL is a COM Application. If it isn't, there is your problem right there. A COM application by definition must initilize/uninitilize COM lib. If it is, what does CoCreateInstance return? Bing Hou hou@tfn.com ======================================================================= Be like a postage stamp - stick to one thing until you get there. - Margaret Carty ======================================================================= ______________________________ Reply Separator _________________________________ Subject: Instansiating a COM object in an ISAPI DLL Author: "Thomas Steele"at Internet Date: 1/23/97 3:08 PM Environment: MSVC++ 4.2b, Win95, NT 4.0 I am having difficulty instansiating a COM object from within a ISAPI DLL. Here is the code I am using: CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER, IID_KeEngine, (LPVOID *) &pKe) I've tried various enumerations of the CLSCTX_* parameters with no luck. I believe it may have something to do with threading models. Any help would be greatly appreciated. TomS
Bing Hou -- hou@tfn.com Monday, January 27, 1997 [Mini-digest: 3 responses] Thomas, I've come across a KB article Q156223 that is entitled "How To Lunch OLE Servers from ISAPI Extensions". It has something to do with running on the IUSR_computername account which is not permitted to lunch a server by OLE. The article tells you how to do it. Bing Hou hou@tfn.com ======================================================================= Be like a postage stamp - stick to one thing until you get there. - Margaret Carty ======================================================================= ______________________________ Reply Separator _________________________________ Subject: Instansiating a COM object in an ISAPI DLL Author: "Thomas Steele"at Internet Date: 1/23/97 3:08 PM Environment: MSVC++ 4.2b, Win95, NT 4.0 I am having difficulty instansiating a COM object from within a ISAPI DLL. Here is the code I am using: CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER, IID_KeEngine, (LPVOID *) &pKe) I've tried various enumerations of the CLSCTX_* parameters with no luck. I believe it may have something to do with threading models. Any help would be greatly appreciated. TomS -----From: "Thomas Steele" The return code from CoCreateInstance() was 800401F0 (CO_E_NOTINITIALIZED). My bad! I had been calling AfxOleInit() but I now realize that this does not initialize the COM libraries. I tried CoInitialize() and all is well. Thanks to all. TomS. ---------- From: owner-mfc-l@majordomo.netcom.com on behalf of Kenneth A. Argo Sent: Friday, January 24, 1997 1:46 PM To: mfc-l; Thomas Steele Subject: RE: Instansiating a COM object in an ISAPI DLL [Mini-digest: 3 responses] You should receive a value from CoCreateInstance which will tell you the problem. What value are you receiving ? Ken ---------- From: Thomas Steele[SMTP:tsteelemct@msn.com] Sent: Thursday, January 23, 1997 10:08 AM To: mfc-l Subject: Instansiating a COM object in an ISAPI DLL Environment: MSVC++ 4.2b, Win95, NT 4.0 I am having difficulty instansiating a COM object from within a ISAPI DLL. Here is the code I am using: CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER, IID_KeEngine, (LPVOID *) &pKe) I've tried various enumerations of the CLSCTX_* parameters with no luck. I believe it may have something to do with threading models. Any help would be greatly appreciated. TomS -----From: Mike Blaszczak At 15:08 1/23/97 UT, Thomas Steele wrote: >Environment: MSVC++ 4.2b, Win95, NT 4.0 >I am having difficulty instansiating a COM object from within a ISAPI DLL. >Here is the code I am using: >CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | >CLSCTX_INPROC_SERVER, IID_KeEngine, (LPVOID *) &pKe) >I've tried various enumerations of the CLSCTX_* parameters with no luck. I >believe it may have something to do with threading models. >Any help would be greatly appreciated. For you to get any help, you'll need to provide at least _some_ description of your problem. Assuming everything is registered correctly, and you have the right CLSID, and you have the right IID, and you have initialized OLE properly, the above call will work just fine. What problem are you noticing? Are you finding that pKE really contains NULL? What return code are you getting from CoCreateInstance()? What behaviour are you noticing that makes you think you have no luck? .B ekiM http://www.nwlink.com/~mikeblas/ Why does the "new" Corvette look like a 1993 RX-7? These words are my own. I do not speak on behalf of Microsoft. -----From: Roma Hello, Thomas Steele wrote: > > Environment: MSVC++ 4.2b, Win95, NT 4.0 > > I am having difficulty instansiating a COM object from within a ISAPI DLL. > Here is the code I am using: > > CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | > CLSCTX_INPROC_SERVER, IID_KeEngine, (LPVOID *) &pKe) > Try the following: IUnknown *pUnk; CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER, IID_IUnknown, (LPVOID *) &pUnk); pUnk->QueryInterface(IID_KeEngine, (LPVOID *) &pKe); At least, CreateDispatch() member of the COleDispatchDriver class do retrieve IDispatch in two steps - you can check it in file oledisp2.cpp, line 78. -Roma -----From: "Thomas Steele" Well, all is not entirely well. The return value from CoCreateInstance is now REGDB_E_CLASSNOTREG. However, to my knowledge I've registered the COM object properly. It works when I instansiate it from a local application. Is there some special registry entries to allow network access to the COM object? ---------- From: owner-mfc-l@majordomo.netcom.com on behalf of Kenneth A. Argo Sent: Friday, January 24, 1997 1:46 PM To: mfc-l; Thomas Steele Subject: RE: Instansiating a COM object in an ISAPI DLL [Mini-digest: 3 responses] You should receive a value from CoCreateInstance which will tell you the problem. What value are you receiving ? Ken ---------- From: Thomas Steele[SMTP:tsteelemct@msn.com] Sent: Thursday, January 23, 1997 10:08 AM To: mfc-l Subject: Instansiating a COM object in an ISAPI DLL Environment: MSVC++ 4.2b, Win95, NT 4.0 I am having difficulty instansiating a COM object from within a ISAPI DLL. Here is the code I am using: CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER, IID_KeEngine, (LPVOID *) &pKe) I've tried various enumerations of the CLSCTX_* parameters with no luck. I believe it may have something to do with threading models. Any help would be greatly appreciated. TomS -----From: Mike Blaszczak At 15:08 1/23/97 UT, Thomas Steele wrote: >Environment: MSVC++ 4.2b, Win95, NT 4.0 >I am having difficulty instansiating a COM object from within a ISAPI DLL. >Here is the code I am using: >CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | >CLSCTX_INPROC_SERVER, IID_KeEngine, (LPVOID *) &pKe) >I've tried various enumerations of the CLSCTX_* parameters with no luck. I >believe it may have something to do with threading models. >Any help would be greatly appreciated. For you to get any help, you'll need to provide at least _some_ description of your problem. Assuming everything is registered correctly, and you have the right CLSID, and you have the right IID, and you have initialized OLE properly, the above call will work just fine. What problem are you noticing? Are you finding that pKE really contains NULL? What return code are you getting from CoCreateInstance()? What behaviour are you noticing that makes you think you have no luck? .B ekiM http://www.nwlink.com/~mikeblas/ Why does the "new" Corvette look like a 1993 RX-7? These words are my own. I do not speak on behalf of Microsoft. -----From: Roma Hello, Thomas Steele wrote: > > Environment: MSVC++ 4.2b, Win95, NT 4.0 > > I am having difficulty instansiating a COM object from within a ISAPI DLL. > Here is the code I am using: > > CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | > CLSCTX_INPROC_SERVER, IID_KeEngine, (LPVOID *) &pKe) > Try the following: IUnknown *pUnk; CoCreateInstance(CLSID_KeEngine, NULL, CLSCTX_LOCAL_SERVER | CLSCTX_INPROC_SERVER, IID_IUnknown, (LPVOID *) &pUnk); pUnk->QueryInterface(IID_KeEngine, (LPVOID *) &pKe); At least, CreateDispatch() member of the COleDispatchDriver class do retrieve IDispatch in two steps - you can check it in file oledisp2.cpp, line 78. -Roma
| Вернуться в корень Архива |