PATCH: cogetclassobject clarificvation
Marcus Meissner
marcus at jet.franken.de
Sat Apr 7 07:58:46 CDT 2001
Hi,
Ciao, Marcus
Changelog:
arg 3 of CoGetClassObject is COSERVERINFO*, added some more debug.
Index: dlls/ole32/compobj.c
===================================================================
RCS file: /home/wine/wine/dlls/ole32/compobj.c,v
retrieving revision 1.37
diff -u -r1.37 compobj.c
--- dlls/ole32/compobj.c 2001/02/12 03:51:04 1.37
+++ dlls/ole32/compobj.c 2001/04/07 13:44:21
@@ -1150,9 +1150,10 @@
/***********************************************************************
* CoGetClassObject [COMPOBJ.7]
*/
-HRESULT WINAPI CoGetClassObject(REFCLSID rclsid, DWORD dwClsContext,
- LPVOID pvReserved, REFIID iid, LPVOID *ppv)
-{
+HRESULT WINAPI CoGetClassObject(
+ REFCLSID rclsid, DWORD dwClsContext, COSERVERINFO *pServerInfo,
+ REFIID iid, LPVOID *ppv
+) {
LPUNKNOWN regClassObject;
HRESULT hres = E_UNEXPECTED;
char xclsid[80];
@@ -1170,6 +1171,11 @@
debugstr_guid(iid)
);
+ if (pServerInfo) {
+ FIXME("\tpServerInfo: name=%s\n",debugstr_w(pServerInfo->pwszName));
+ FIXME("\t\tpAuthInfo=%p\n",pServerInfo->pAuthInfo);
+ }
+
/*
* First, try and see if we can't match the class ID with one of the
* registered classes.
@@ -1192,9 +1198,13 @@
}
/* out of process and remote servers not supported yet */
- if (((CLSCTX_LOCAL_SERVER|CLSCTX_REMOTE_SERVER) & dwClsContext)
- && !((CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER) & dwClsContext)){
- FIXME("CLSCTX_LOCAL_SERVER and CLSCTX_REMOTE_SERVER not supported!\n");
+ if ( ((CLSCTX_LOCAL_SERVER|CLSCTX_REMOTE_SERVER) & dwClsContext)
+ && !((CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER) & dwClsContext)
+ ){
+ FIXME("%s %s not supported!\n",
+ (dwClsContext&CLSCTX_LOCAL_SERVER)?"CLSCTX_LOCAL_SERVER":"",
+ (dwClsContext&CLSCTX_REMOTE_SERVER)?"CLSCTX_REMOTE_SERVER":""
+ );
return E_ACCESSDENIED;
}
@@ -1383,8 +1393,10 @@
&IID_IClassFactory,
(LPVOID)&lpclf);
- if (FAILED(hres))
+ if (FAILED(hres)) {
+ FIXME("no instance created for %s, hres is 0x%08lx\n",debugstr_guid(iid),hres);
return hres;
+ }
/*
* Create the object and don't forget to release the factory
Index: include/wine/obj_base.h
===================================================================
RCS file: /home/wine/wine/include/wine/obj_base.h,v
retrieving revision 1.38
diff -u -r1.38 obj_base.h
--- include/wine/obj_base.h 2001/01/04 22:59:49 1.38
+++ include/wine/obj_base.h 2001/04/07 13:45:09
@@ -628,7 +628,7 @@
HRESULT WINAPI CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv);
-HRESULT WINAPI CoGetClassObject(REFCLSID rclsid, DWORD dwClsContext, LPVOID pvReserved, REFIID iid, LPVOID *ppv);
+HRESULT WINAPI CoGetClassObject(REFCLSID rclsid, DWORD dwClsContext, COSERVERINFO *pServerInfo, REFIID iid, LPVOID *ppv);
HRESULT WINAPI CoInitialize(LPVOID lpReserved);
HRESULT WINAPI CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit);
More information about the wine-patches
mailing list