mirror of
https://github.com/reactos/reactos.git
synced 2025-08-02 04:35:53 +00:00
Sync to Wine-20050725:
Robert Shearman <rob@codeweavers.com> - Marshal return value from IRemUnknown_RemQueryInterface. - We should be starting with 1 reference. - IRpcStubBuffer_Disconnect can be called more than once. - Silence now noisy error messages caused by changes in the way we call ipid_to_stubmanager. Move the error message to the one place it is needed. - By-pass the RPC runtime if possible when calling an STA by posting a message directly to the apartment window for it to process. Fixes a deadlock in InstallShield caused by having to create a thread when freeing an object that comes from an STA apartment. Added tests that fail without this fix. - Hack around broken state management so InstallShield works. - Delete the stub manager outside of the apartment critical section because the deletion may require the object to re-enter the apartment. - Always query for the correct stub interface, otherwise we will be pointing to the completely wrong object when a proxy does a queryinterface. - Remove assumption that the stub buffer will handle the lifetime of the object. Alex Villacis Lasso <a_villacis@palosanto.com> - Initialize RegisteredClass properly in CoRegisterClassObject to prevent crash in CoRevokeClassObject when accessing (uninitialized) pMarshalledData. Mike McCormack <mike@codeweavers.com> - Fix gcc 4.0 -Wpointer-sign warnings. Vitaly Lipatov <lav@etersoft.ru> - Added some documentation. Stefan Huehner <stefan@huehner.org> - Fix some missing-declarations warnings. Marcus Meissner <meissner@suse.de> - 16bit interfaces are cdecl, so drop the WINAPI. - 16bit COM interfaces are cdecl, not WINAPI. - OleInitializeWOW gets 2 arguments. - Added OleSetMenuDescriptor16 stub. Marcus Meissner <marcus@jet.franken.de> - Implemented IsValidInterface16, CoMemAlloc. Added debug to HGLOBALLockBytes16_QueryInterface. svn path=/trunk/; revision=17332
This commit is contained in:
parent
5b9aceccd3
commit
7835b350bb
38 changed files with 1139 additions and 1034 deletions
|
@ -49,7 +49,7 @@ typedef struct AntiMonikerImpl{
|
||||||
*/
|
*/
|
||||||
const IROTDataVtbl* lpvtbl2; /* VTable relative to the IROTData interface.*/
|
const IROTDataVtbl* lpvtbl2; /* VTable relative to the IROTData interface.*/
|
||||||
|
|
||||||
ULONG ref; /* reference counter for this object */
|
LONG ref; /* reference counter for this object */
|
||||||
|
|
||||||
} AntiMonikerImpl;
|
} AntiMonikerImpl;
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ typedef struct BindCtxImpl{
|
||||||
|
|
||||||
const IBindCtxVtbl *lpVtbl; /* VTable relative to the IBindCtx interface.*/
|
const IBindCtxVtbl *lpVtbl; /* VTable relative to the IBindCtx interface.*/
|
||||||
|
|
||||||
ULONG ref; /* reference counter for this object */
|
LONG ref; /* reference counter for this object */
|
||||||
|
|
||||||
BindCtxObject* bindCtxTable; /* this is a table in which all bounded objects are stored*/
|
BindCtxObject* bindCtxTable; /* this is a table in which all bounded objects are stored*/
|
||||||
DWORD bindCtxTableLastIndex; /* first free index in the table */
|
DWORD bindCtxTableLastIndex; /* first free index in the table */
|
||||||
|
|
|
@ -122,7 +122,7 @@ struct OLEClipbrd
|
||||||
/*
|
/*
|
||||||
* Reference count of this object
|
* Reference count of this object
|
||||||
*/
|
*/
|
||||||
ULONG ref;
|
LONG ref;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct OLEClipbrd OLEClipbrd;
|
typedef struct OLEClipbrd OLEClipbrd;
|
||||||
|
@ -145,7 +145,7 @@ typedef struct
|
||||||
/*
|
/*
|
||||||
* Reference count of this object
|
* Reference count of this object
|
||||||
*/
|
*/
|
||||||
DWORD ref;
|
LONG ref;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IUnknown implementation of the parent data object.
|
* IUnknown implementation of the parent data object.
|
||||||
|
|
|
@ -1403,6 +1403,8 @@ HRESULT WINAPI CoRegisterClassObject(
|
||||||
newClass->classIdentifier = *rclsid;
|
newClass->classIdentifier = *rclsid;
|
||||||
newClass->runContext = dwClsContext;
|
newClass->runContext = dwClsContext;
|
||||||
newClass->connectFlags = flags;
|
newClass->connectFlags = flags;
|
||||||
|
newClass->pMarshaledData = NULL;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Use the address of the chain node as the cookie since we are sure it's
|
* Use the address of the chain node as the cookie since we are sure it's
|
||||||
* unique. FIXME: not on 64-bit platforms.
|
* unique. FIXME: not on 64-bit platforms.
|
||||||
|
|
|
@ -1,218 +1,218 @@
|
||||||
1 pascal CoBuildVersion() CoBuildVersion
|
1 pascal CoBuildVersion() CoBuildVersion
|
||||||
2 pascal CoInitialize(long) CoInitialize16
|
2 pascal CoInitialize(long) CoInitialize16
|
||||||
3 pascal CoUninitialize() CoUninitialize16
|
3 pascal CoUninitialize() CoUninitialize16
|
||||||
4 pascal CoGetMalloc(long ptr) CoGetMalloc16
|
4 pascal CoGetMalloc(long ptr) CoGetMalloc16
|
||||||
5 pascal CoRegisterClassObject(ptr ptr long long ptr) CoRegisterClassObject16
|
5 pascal CoRegisterClassObject(ptr ptr long long ptr) CoRegisterClassObject16
|
||||||
6 pascal CoRevokeClassObject(long) CoRevokeClassObject16
|
6 pascal CoRevokeClassObject(long) CoRevokeClassObject16
|
||||||
7 pascal CoGetClassObject(ptr long ptr ptr ptr) CoGetClassObject
|
7 pascal CoGetClassObject(ptr long ptr ptr ptr) CoGetClassObject
|
||||||
8 stub COMARSHALINTERFACE
|
8 stub COMARSHALINTERFACE
|
||||||
9 stub COUNMARSHALINTERFACE
|
9 stub COUNMARSHALINTERFACE
|
||||||
10 stub COLOADLIBRARY
|
10 stub COLOADLIBRARY
|
||||||
11 stub COFREELIBRARY
|
11 stub COFREELIBRARY
|
||||||
12 stub COFREEALLLIBRARIES
|
12 stub COFREEALLLIBRARIES
|
||||||
13 pascal CoCreateInstance(ptr ptr long ptr ptr) CoCreateInstance
|
13 pascal CoCreateInstance(ptr ptr long ptr ptr) CoCreateInstance
|
||||||
14 stub STRINGFROMIID
|
14 stub STRINGFROMIID
|
||||||
15 pascal CoDisconnectObject(ptr long) CoDisconnectObject
|
15 pascal CoDisconnectObject(ptr long) CoDisconnectObject
|
||||||
16 stub CORELEASEMARSHALDATA
|
16 stub CORELEASEMARSHALDATA
|
||||||
17 pascal -ret16 CoFreeUnusedLibraries() CoFreeUnusedLibraries
|
17 pascal -ret16 CoFreeUnusedLibraries() CoFreeUnusedLibraries
|
||||||
18 pascal -ret16 IsEqualGUID(ptr ptr) IsEqualGUID16
|
18 pascal -ret16 IsEqualGUID(ptr ptr) IsEqualGUID16
|
||||||
19 pascal StringFromCLSID(ptr ptr) StringFromCLSID16
|
19 pascal StringFromCLSID(ptr ptr) StringFromCLSID16
|
||||||
20 pascal CLSIDFromString(str ptr) CLSIDFromString16
|
20 pascal CLSIDFromString(str ptr) CLSIDFromString16
|
||||||
21 stub ISVALIDPTRIN
|
21 stub ISVALIDPTRIN
|
||||||
22 stub ISVALIDPTROUT
|
22 stub ISVALIDPTROUT
|
||||||
23 stub ISVALIDINTERFACE
|
23 pascal IsValidInterface(segptr) IsValidInterface16
|
||||||
24 stub ISVALIDIID
|
24 stub ISVALIDIID
|
||||||
25 stub RESULTFROMSCODE
|
25 stub RESULTFROMSCODE
|
||||||
26 stub GETSCODE
|
26 stub GETSCODE
|
||||||
27 pascal CoRegisterMessageFilter(ptr ptr) CoRegisterMessageFilter16
|
27 pascal CoRegisterMessageFilter(ptr ptr) CoRegisterMessageFilter16
|
||||||
28 stub COISHANDLERCONNECTED
|
28 stub COISHANDLERCONNECTED
|
||||||
29 stub SHRADDREF
|
29 stub SHRADDREF
|
||||||
30 pascal -ret16 CoFileTimeToDosDateTime(ptr ptr ptr) CoFileTimeToDosDateTime16
|
30 pascal -ret16 CoFileTimeToDosDateTime(ptr ptr ptr) CoFileTimeToDosDateTime16
|
||||||
31 pascal -ret16 CoDosDateTimeToFileTime(word word ptr) CoDosDateTimeToFileTime16
|
31 pascal -ret16 CoDosDateTimeToFileTime(word word ptr) CoDosDateTimeToFileTime16
|
||||||
32 stub COMARSHALHRESULT
|
32 stub COMARSHALHRESULT
|
||||||
33 stub COUNMARSHALHRESULT
|
33 stub COUNMARSHALHRESULT
|
||||||
34 pascal CoGetCurrentProcess() CoGetCurrentProcess
|
34 pascal CoGetCurrentProcess() CoGetCurrentProcess
|
||||||
35 stub SHRCREATE
|
35 stub SHRCREATE
|
||||||
36 stub COISOLE1CLASS
|
36 stub COISOLE1CLASS
|
||||||
37 stub _GUID_NULL
|
37 stub _GUID_NULL
|
||||||
38 stub _IID_IUNKNOWN
|
38 stub _IID_IUNKNOWN
|
||||||
39 stub _IID_ICLASSFACTORY
|
39 stub _IID_ICLASSFACTORY
|
||||||
40 stub _IID_IMALLOC
|
40 stub _IID_IMALLOC
|
||||||
41 stub _IID_IMARSHAL
|
41 stub _IID_IMARSHAL
|
||||||
42 stub _IID_IRPCCHANNEL
|
42 stub _IID_IRPCCHANNEL
|
||||||
43 stub _IID_IRPCSTUB
|
43 stub _IID_IRPCSTUB
|
||||||
44 stub _IID_ISTUBMANAGER
|
44 stub _IID_ISTUBMANAGER
|
||||||
45 stub _IID_IRPCPROXY
|
45 stub _IID_IRPCPROXY
|
||||||
46 stub _IID_IPROXYMANAGER
|
46 stub _IID_IPROXYMANAGER
|
||||||
47 stub _IID_IPSFACTORY
|
47 stub _IID_IPSFACTORY
|
||||||
48 stub _IID_ILOCKBYTES
|
48 stub _IID_ILOCKBYTES
|
||||||
49 stub _IID_ISTORAGE
|
49 stub _IID_ISTORAGE
|
||||||
50 stub _IID_ISTREAM
|
50 stub _IID_ISTREAM
|
||||||
51 stub _IID_IENUMSTATSTG
|
51 stub _IID_IENUMSTATSTG
|
||||||
52 stub _IID_IBINDCTX
|
52 stub _IID_IBINDCTX
|
||||||
53 stub _IID_IMONIKER
|
53 stub _IID_IMONIKER
|
||||||
54 stub _IID_IRUNNINGOBJECTTABLE
|
54 stub _IID_IRUNNINGOBJECTTABLE
|
||||||
55 stub _IID_IINTERNALMONIKER
|
55 stub _IID_IINTERNALMONIKER
|
||||||
56 stub _IID_IROOTSTORAGE
|
56 stub _IID_IROOTSTORAGE
|
||||||
57 stub _IID_IDFRESERVED1
|
57 stub _IID_IDFRESERVED1
|
||||||
58 stub _IID_IDFRESERVED2
|
58 stub _IID_IDFRESERVED2
|
||||||
59 stub _IID_IDFRESERVED3
|
59 stub _IID_IDFRESERVED3
|
||||||
60 stub _IID_IMESSAGEFILTER
|
60 stub _IID_IMESSAGEFILTER
|
||||||
61 pascal CLSIDFromProgID(str ptr) CLSIDFromProgID16
|
61 pascal CLSIDFromProgID(str ptr) CLSIDFromProgID16
|
||||||
62 pascal ProgIDFromCLSID(ptr ptr) ProgIDFromCLSID16
|
62 pascal ProgIDFromCLSID(ptr ptr) ProgIDFromCLSID16
|
||||||
63 pascal CoLockObjectExternal(segptr word word) CoLockObjectExternal16
|
63 pascal CoLockObjectExternal(segptr word word) CoLockObjectExternal16
|
||||||
64 stub _CLSID_STDMARSHAL
|
64 stub _CLSID_STDMARSHAL
|
||||||
65 stub COGETTREATASCLASS
|
65 stub COGETTREATASCLASS
|
||||||
66 stub COTREATASCLASS
|
66 stub COTREATASCLASS
|
||||||
67 stub COGETSTANDARDMARSHAL
|
67 stub COGETSTANDARDMARSHAL
|
||||||
68 stub PROPAGATERESULT
|
68 stub PROPAGATERESULT
|
||||||
69 stub IIDFROMSTRING
|
69 stub IIDFROMSTRING
|
||||||
70 stub _IID_ISTDMARSHALINFO
|
70 stub _IID_ISTDMARSHALINFO
|
||||||
71 pascal CoCreateStandardMalloc(long ptr) CoCreateStandardMalloc16
|
71 pascal CoCreateStandardMalloc(long ptr) CoCreateStandardMalloc16
|
||||||
72 stub _IID_IEXTERNALCONNECTION
|
72 stub _IID_IEXTERNALCONNECTION
|
||||||
73 stub COCREATEGUID
|
73 stub COCREATEGUID
|
||||||
75 stub FNASSERT
|
75 stub FNASSERT
|
||||||
76 pascal StringFromGUID2(ptr ptr word) StringFromGUID2
|
76 pascal StringFromGUID2(ptr ptr word) StringFromGUID2
|
||||||
77 stub COGETCLASSEXT
|
77 stub COGETCLASSEXT
|
||||||
78 stub OLE1CLASSFROMCLSID2
|
78 stub OLE1CLASSFROMCLSID2
|
||||||
79 stub CLSIDFROMOLE1CLASS
|
79 stub CLSIDFROMOLE1CLASS
|
||||||
80 stub COOPENCLASSKEY
|
80 stub COOPENCLASSKEY
|
||||||
81 stub GUIDFROMSTRING
|
81 stub GUIDFROMSTRING
|
||||||
82 pascal CoFileTimeNow(ptr) CoFileTimeNow
|
82 pascal CoFileTimeNow(ptr) CoFileTimeNow
|
||||||
83 stub REMALLOCOID
|
83 stub REMALLOCOID
|
||||||
84 stub REMFREEOID
|
84 stub REMFREEOID
|
||||||
85 stub REMCREATEREMOTEHANDLER
|
85 stub REMCREATEREMOTEHANDLER
|
||||||
86 stub REMCONNECTTOOBJECT
|
86 stub REMCONNECTTOOBJECT
|
||||||
87 stub REMGETINFOFORCID
|
87 stub REMGETINFOFORCID
|
||||||
88 stub LRPCCALL
|
88 stub LRPCCALL
|
||||||
89 stub LRPCDISPATCH
|
89 stub LRPCDISPATCH
|
||||||
90 stub LRPCREGISTERMONITOR
|
90 stub LRPCREGISTERMONITOR
|
||||||
91 stub LRPCREVOKEMONITOR
|
91 stub LRPCREVOKEMONITOR
|
||||||
92 stub LRPCGETTHREADWINDOW
|
92 stub LRPCGETTHREADWINDOW
|
||||||
93 stub TIMERCALLBACKPROC
|
93 stub TIMERCALLBACKPROC
|
||||||
94 pascal LookupETask(ptr ptr) LookupETask16
|
94 pascal LookupETask(ptr ptr) LookupETask16
|
||||||
95 pascal -ret16 SetETask(word ptr) SetETask16
|
95 pascal -ret16 SetETask(word ptr) SetETask16
|
||||||
96 stub LRPCFREEMONITORDATA
|
96 stub LRPCFREEMONITORDATA
|
||||||
97 stub REMLOOKUPSHUNK
|
97 stub REMLOOKUPSHUNK
|
||||||
98 stub SHRGETSIZE
|
98 stub SHRGETSIZE
|
||||||
99 stub CALLTHKMGRUNINITIALIZE
|
99 stub CALLTHKMGRUNINITIALIZE
|
||||||
100 stub ??0CARRAYFVALUE@@REC@KI@Z
|
100 stub ??0CARRAYFVALUE@@REC@KI@Z
|
||||||
101 stub ??1CARRAYFVALUE@@REC@XZ
|
101 stub ??1CARRAYFVALUE@@REC@XZ
|
||||||
102 stub ?ASSERTVALID@CARRAYFVALUE@@RFCXXZ
|
102 stub ?ASSERTVALID@CARRAYFVALUE@@RFCXXZ
|
||||||
103 stub ?FREEEXTRA@CARRAYFVALUE@@RECXXZ
|
103 stub ?FREEEXTRA@CARRAYFVALUE@@RECXXZ
|
||||||
104 stub ?_GETAT@CARRAYFVALUE@@RFCPEXH@Z
|
104 stub ?_GETAT@CARRAYFVALUE@@RFCPEXH@Z
|
||||||
105 stub ?GETSIZE@CARRAYFVALUE@@RFCHXZ
|
105 stub ?GETSIZE@CARRAYFVALUE@@RFCHXZ
|
||||||
106 stub ?REMOVEALL@CARRAYFVALUE@@RECXXZ
|
106 stub ?REMOVEALL@CARRAYFVALUE@@RECXXZ
|
||||||
107 stub SHRDESTROY
|
107 stub SHRDESTROY
|
||||||
108 stub ?INDEXOF@CARRAYFVALUE@@RECHPEXII@Z
|
108 stub ?INDEXOF@CARRAYFVALUE@@RECHPEXII@Z
|
||||||
109 stub ?INSERTAT@CARRAYFVALUE@@RECHHPEXH@Z
|
109 stub ?INSERTAT@CARRAYFVALUE@@RECHHPEXH@Z
|
||||||
110 stub COSETSTATE
|
110 stub COSETSTATE
|
||||||
111 stub ?REMOVEAT@CARRAYFVALUE@@RECXHH@Z
|
111 stub ?REMOVEAT@CARRAYFVALUE@@RECXHH@Z
|
||||||
112 stub ?SETAT@CARRAYFVALUE@@RECXHPEX@Z
|
112 stub ?SETAT@CARRAYFVALUE@@RECXHPEX@Z
|
||||||
113 stub ?SETATGROW@CARRAYFVALUE@@RECHHPEX@Z
|
113 stub ?SETATGROW@CARRAYFVALUE@@RECHHPEX@Z
|
||||||
114 stub ?SETSIZE@CARRAYFVALUE@@RECHHH@Z
|
114 stub ?SETSIZE@CARRAYFVALUE@@RECHHH@Z
|
||||||
115 pascal CoGetState(ptr) CoGetState16
|
115 pascal CoGetState(ptr) CoGetState16
|
||||||
116 pascal DllEntryPoint(long word word word long word) COMPOBJ_DllEntryPoint
|
116 pascal DllEntryPoint(long word word word long word) COMPOBJ_DllEntryPoint
|
||||||
117 stub ?RELEASE@CSTDMALLOC@@VEAKXZ
|
117 stub ?RELEASE@CSTDMALLOC@@VEAKXZ
|
||||||
118 stub ?ALLOC@CSTDMALLOC@@VEAPEXK@Z
|
118 stub ?ALLOC@CSTDMALLOC@@VEAPEXK@Z
|
||||||
119 stub SHRRELEASE
|
119 stub SHRRELEASE
|
||||||
120 stub ?GETASSOCAT@CMAPKEYTOVALUE@@BFCPEUCASSOC@1@PEXIAEI@Z
|
120 stub ?GETASSOCAT@CMAPKEYTOVALUE@@BFCPEUCASSOC@1@PEXIAEI@Z
|
||||||
121 stub ?SETASSOCKEY@CMAPKEYTOVALUE@@BFCHPEUCASSOC@1@PEXI@Z
|
121 stub ?SETASSOCKEY@CMAPKEYTOVALUE@@BFCHPEUCASSOC@1@PEXI@Z
|
||||||
122 stub ??1CMAPKEYTOVALUE@@REC@XZ
|
122 stub ??1CMAPKEYTOVALUE@@REC@XZ
|
||||||
123 stub ?GETASSOCKEYPTR@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEPEXPEI@Z
|
123 stub ?GETASSOCKEYPTR@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEPEXPEI@Z
|
||||||
124 stub ?NEWASSOC@CMAPKEYTOVALUE@@BECPEUCASSOC@1@IPEXI0@Z
|
124 stub ?NEWASSOC@CMAPKEYTOVALUE@@BECPEUCASSOC@1@IPEXI0@Z
|
||||||
125 stub ?SIZEASSOC@CMAPKEYTOVALUE@@BFCIXZ
|
125 stub ?SIZEASSOC@CMAPKEYTOVALUE@@BFCIXZ
|
||||||
126 stub ?FREEASSOC@CMAPKEYTOVALUE@@BECXPEUCASSOC@1@@Z
|
126 stub ?FREEASSOC@CMAPKEYTOVALUE@@BECXPEUCASSOC@1@@Z
|
||||||
127 stub ?GETSTARTPOSITION@CMAPKEYTOVALUE@@RFCPEXXZ
|
127 stub ?GETSTARTPOSITION@CMAPKEYTOVALUE@@RFCPEXXZ
|
||||||
128 stub ?GETNEXTASSOC@CMAPKEYTOVALUE@@RFCXPEPEXPEXPEI1@Z
|
128 stub ?GETNEXTASSOC@CMAPKEYTOVALUE@@RFCXPEPEXPEXPEI1@Z
|
||||||
129 stub ?COMPAREASSOCKEY@CMAPKEYTOVALUE@@BFCHPEUCASSOC@1@PEXI@Z
|
129 stub ?COMPAREASSOCKEY@CMAPKEYTOVALUE@@BFCHPEUCASSOC@1@PEXI@Z
|
||||||
130 stub ?REMOVEHKEY@CMAPKEYTOVALUE@@RECHK@Z
|
130 stub ?REMOVEHKEY@CMAPKEYTOVALUE@@RECHK@Z
|
||||||
131 stub ?GETHKEY@CMAPKEYTOVALUE@@RFCKPEXI@Z
|
131 stub ?GETHKEY@CMAPKEYTOVALUE@@RFCKPEXI@Z
|
||||||
132 stub ?GETCOUNT@CMAPKEYTOVALUE@@RFCHXZ
|
132 stub ?GETCOUNT@CMAPKEYTOVALUE@@RFCHXZ
|
||||||
133 stub ?LOOKUP@CMAPKEYTOVALUE@@RFCHPEXI0@Z
|
133 stub ?LOOKUP@CMAPKEYTOVALUE@@RFCHPEXI0@Z
|
||||||
134 stub ?GETASSOCVALUE@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEX@Z
|
134 stub ?GETASSOCVALUE@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEX@Z
|
||||||
135 stub ?REMOVEKEY@CMAPKEYTOVALUE@@RECHPEXI@Z
|
135 stub ?REMOVEKEY@CMAPKEYTOVALUE@@RECHPEXI@Z
|
||||||
136 stub ?REMOVEALL@CMAPKEYTOVALUE@@RECXXZ
|
136 stub ?REMOVEALL@CMAPKEYTOVALUE@@RECXXZ
|
||||||
137 stub SHRALLOC
|
137 stub SHRALLOC
|
||||||
138 stub ?FREEASSOCKEY@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@@Z
|
138 stub ?FREEASSOCKEY@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@@Z
|
||||||
139 stub ?SETAT@CMAPKEYTOVALUE@@RECHPEXI0@Z
|
139 stub ?SETAT@CMAPKEYTOVALUE@@RECHPEXI0@Z
|
||||||
140 stub ?LOOKUPHKEY@CMAPKEYTOVALUE@@RFCHKPEX@Z
|
140 stub ?LOOKUPHKEY@CMAPKEYTOVALUE@@RFCHKPEX@Z
|
||||||
141 stub ?ASSERTVALID@CMAPKEYTOVALUE@@RFCXXZ
|
141 stub ?ASSERTVALID@CMAPKEYTOVALUE@@RFCXXZ
|
||||||
142 stub ?SETASSOCVALUE@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEX@Z
|
142 stub ?SETASSOCVALUE@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEX@Z
|
||||||
143 stub ?SETATHKEY@CMAPKEYTOVALUE@@RECHKPEX@Z
|
143 stub ?SETATHKEY@CMAPKEYTOVALUE@@RECHKPEX@Z
|
||||||
144 stub ??0CMAPKEYTOVALUE@@REC@KIIHP7CIPEXI@ZI@Z
|
144 stub ??0CMAPKEYTOVALUE@@REC@KIIHP7CIPEXI@ZI@Z
|
||||||
145 stub ?INITHASHTABLE@CMAPKEYTOVALUE@@BECHXZ
|
145 stub ?INITHASHTABLE@CMAPKEYTOVALUE@@BECHXZ
|
||||||
146 stub ?GETASSOCVALUEPTR@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEPEX@Z
|
146 stub ?GETASSOCVALUEPTR@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEPEX@Z
|
||||||
147 stub ?LOOKUPADD@CMAPKEYTOVALUE@@RFCHPEXI0@Z
|
147 stub ?LOOKUPADD@CMAPKEYTOVALUE@@RFCHPEXI0@Z
|
||||||
148 stub MKVDEFAULTHASHKEY
|
148 stub MKVDEFAULTHASHKEY
|
||||||
149 stub DELETE16
|
149 stub DELETE16
|
||||||
150 stub COMEMCTXOF
|
150 stub COMEMCTXOF
|
||||||
151 stub COMEMALLOC
|
151 pascal CoMemAlloc(long long long)
|
||||||
152 stub COMEMFREE
|
152 stub COMEMFREE
|
||||||
153 stub SHRREALLOC
|
153 stub SHRREALLOC
|
||||||
154 stub ___EXPORTEDSTUB
|
154 stub ___EXPORTEDSTUB
|
||||||
155 stub LRPCREGISTERWIN32SMONITOR
|
155 stub LRPCREGISTERWIN32SMONITOR
|
||||||
156 stub MYREMGETINFOFORCID
|
156 stub MYREMGETINFOFORCID
|
||||||
157 stub SHRFREE
|
157 stub SHRFREE
|
||||||
158 stub OPNEW16
|
158 stub OPNEW16
|
||||||
159 stub ADDCOINFO
|
159 stub ADDCOINFO
|
||||||
160 stub CORUNMODALLOOP
|
160 stub CORUNMODALLOOP
|
||||||
161 stub COHANDLEINCOMINGCALL
|
161 stub COHANDLEINCOMINGCALL
|
||||||
162 stub COSETACKSTATE
|
162 stub COSETACKSTATE
|
||||||
163 stub SHRDIDALLOC
|
163 stub SHRDIDALLOC
|
||||||
164 stub ?GETAT@CARRAYFVALUE@@RFCPEXH@Z
|
164 stub ?GETAT@CARRAYFVALUE@@RFCPEXH@Z
|
||||||
165 stub ?GETUPPERBOUND@CARRAYFVALUE@@RFCHXZ
|
165 stub ?GETUPPERBOUND@CARRAYFVALUE@@RFCHXZ
|
||||||
166 stub OPDELETE16
|
166 stub OPDELETE16
|
||||||
167 stub ?GETSIZEVALUE@CARRAYFVALUE@@RFCHXZ
|
167 stub ?GETSIZEVALUE@CARRAYFVALUE@@RFCHXZ
|
||||||
168 stub ?PROXY1632ADDREF@@ZAKPEVCPROXY1632@@@Z
|
168 stub ?PROXY1632ADDREF@@ZAKPEVCPROXY1632@@@Z
|
||||||
# FIXME: 169 is a duplicate of 97
|
# FIXME: 169 is a duplicate of 97
|
||||||
169 stub REMLOOKUPSHUNK_dup
|
169 stub REMLOOKUPSHUNK_dup
|
||||||
170 stub ?ISEMPTY@CMAPKEYTOVALUE@@RFCHXZ
|
170 stub ?ISEMPTY@CMAPKEYTOVALUE@@RFCHXZ
|
||||||
171 stub ?FREE@CSTDMALLOC@@VEAXPEX@Z
|
171 stub ?FREE@CSTDMALLOC@@VEAXPEX@Z
|
||||||
172 stub CALLTHKMGRINITIALIZE
|
172 stub CALLTHKMGRINITIALIZE
|
||||||
173 stub ?REALLOC@CSTDMALLOC@@VEAPEXPEXK@Z
|
173 stub ?REALLOC@CSTDMALLOC@@VEAPEXPEXK@Z
|
||||||
174 stub ?SM16RHQI@@ZAPEXPEVCSM16RELEASEHANDLER@@AFUGUID@@PEPEX@Z
|
174 stub ?SM16RHQI@@ZAPEXPEVCSM16RELEASEHANDLER@@AFUGUID@@PEPEX@Z
|
||||||
175 stub ?PROXY1632METHOD10@@ZAKPEVCPROXY1632@@@Z
|
175 stub ?PROXY1632METHOD10@@ZAKPEVCPROXY1632@@@Z
|
||||||
# FIXME: 176 is a duplicate of 154
|
# FIXME: 176 is a duplicate of 154
|
||||||
176 stub ___EXPORTEDSTUB_dup
|
176 stub ___EXPORTEDSTUB_dup
|
||||||
177 stub ?PROXY1632METHOD20@@ZAKPEVCPROXY1632@@@Z
|
177 stub ?PROXY1632METHOD20@@ZAKPEVCPROXY1632@@@Z
|
||||||
178 stub ?PROXY1632METHOD11@@ZAKPEVCPROXY1632@@@Z
|
178 stub ?PROXY1632METHOD11@@ZAKPEVCPROXY1632@@@Z
|
||||||
179 stub ?PROXY1632METHOD30@@ZAKPEVCPROXY1632@@@Z
|
179 stub ?PROXY1632METHOD30@@ZAKPEVCPROXY1632@@@Z
|
||||||
180 stub ?PROXY1632METHOD21@@ZAKPEVCPROXY1632@@@Z
|
180 stub ?PROXY1632METHOD21@@ZAKPEVCPROXY1632@@@Z
|
||||||
181 stub ?PROXY1632METHOD12@@ZAKPEVCPROXY1632@@@Z
|
181 stub ?PROXY1632METHOD12@@ZAKPEVCPROXY1632@@@Z
|
||||||
182 stub ?PROXY1632METHOD31@@ZAKPEVCPROXY1632@@@Z
|
182 stub ?PROXY1632METHOD31@@ZAKPEVCPROXY1632@@@Z
|
||||||
183 stub ?PROXY1632METHOD22@@ZAKPEVCPROXY1632@@@Z
|
183 stub ?PROXY1632METHOD22@@ZAKPEVCPROXY1632@@@Z
|
||||||
184 stub ?PROXY1632METHOD13@@ZAKPEVCPROXY1632@@@Z
|
184 stub ?PROXY1632METHOD13@@ZAKPEVCPROXY1632@@@Z
|
||||||
185 stub ?GETSIZE@CSTDMALLOC@@VEAKPEX@Z
|
185 stub ?GETSIZE@CSTDMALLOC@@VEAKPEX@Z
|
||||||
186 stub ?PROXY1632METHOD23@@ZAKPEVCPROXY1632@@@Z
|
186 stub ?PROXY1632METHOD23@@ZAKPEVCPROXY1632@@@Z
|
||||||
187 stub ?PROXY1632METHOD14@@ZAKPEVCPROXY1632@@@Z
|
187 stub ?PROXY1632METHOD14@@ZAKPEVCPROXY1632@@@Z
|
||||||
188 stub ?PROXY1632METHOD24@@ZAKPEVCPROXY1632@@@Z
|
188 stub ?PROXY1632METHOD24@@ZAKPEVCPROXY1632@@@Z
|
||||||
189 stub ?PROXY1632METHOD15@@ZAKPEVCPROXY1632@@@Z
|
189 stub ?PROXY1632METHOD15@@ZAKPEVCPROXY1632@@@Z
|
||||||
190 stub ?PROXY1632METHOD25@@ZAKPEVCPROXY1632@@@Z
|
190 stub ?PROXY1632METHOD25@@ZAKPEVCPROXY1632@@@Z
|
||||||
191 stub ?PROXY1632METHOD16@@ZAKPEVCPROXY1632@@@Z
|
191 stub ?PROXY1632METHOD16@@ZAKPEVCPROXY1632@@@Z
|
||||||
192 stub ?PROXY1632METHOD26@@ZAKPEVCPROXY1632@@@Z
|
192 stub ?PROXY1632METHOD26@@ZAKPEVCPROXY1632@@@Z
|
||||||
193 stub ?PROXY1632METHOD17@@ZAKPEVCPROXY1632@@@Z
|
193 stub ?PROXY1632METHOD17@@ZAKPEVCPROXY1632@@@Z
|
||||||
194 stub ?PROXY1632METHOD27@@ZAKPEVCPROXY1632@@@Z
|
194 stub ?PROXY1632METHOD27@@ZAKPEVCPROXY1632@@@Z
|
||||||
195 stub ?PROXY1632METHOD18@@ZAKPEVCPROXY1632@@@Z
|
195 stub ?PROXY1632METHOD18@@ZAKPEVCPROXY1632@@@Z
|
||||||
196 stub ?PROXY1632METHOD28@@ZAKPEVCPROXY1632@@@Z
|
196 stub ?PROXY1632METHOD28@@ZAKPEVCPROXY1632@@@Z
|
||||||
197 stub ?ADDREF@CSTDMALLOC@@VEAKXZ
|
197 stub ?ADDREF@CSTDMALLOC@@VEAKXZ
|
||||||
198 stub ?PROXY1632METHOD19@@ZAKPEVCPROXY1632@@@Z
|
198 stub ?PROXY1632METHOD19@@ZAKPEVCPROXY1632@@@Z
|
||||||
199 stub ?PROXY1632METHOD29@@ZAKPEVCPROXY1632@@@Z
|
199 stub ?PROXY1632METHOD29@@ZAKPEVCPROXY1632@@@Z
|
||||||
200 stub CALL32INITIALIZE
|
200 stub CALL32INITIALIZE
|
||||||
201 pascal CALLOBJECTINWOW(ptr ptr) CallObjectInWOW
|
201 pascal CALLOBJECTINWOW(ptr ptr) CallObjectInWOW
|
||||||
203 stub CALLOBJECTINWOWCHECKINIT
|
203 stub CALLOBJECTINWOWCHECKINIT
|
||||||
204 stub CALLOBJECTINWOWCHECKTHKMGR
|
204 stub CALLOBJECTINWOWCHECKTHKMGR
|
||||||
205 stub CONVERTHR1632
|
205 stub CONVERTHR1632
|
||||||
206 stub CONVERTHR3216
|
206 stub CONVERTHR3216
|
||||||
207 stub ADDAPPCOMPATFLAG
|
207 stub ADDAPPCOMPATFLAG
|
||||||
|
|
||||||
# WINE internal relays (for Win16 interfaces)
|
# WINE internal relays (for Win16 interfaces)
|
||||||
500 cdecl IMalloc16_QueryInterface(ptr ptr ptr) IMalloc16_fnQueryInterface
|
500 cdecl IMalloc16_QueryInterface(ptr ptr ptr) IMalloc16_fnQueryInterface
|
||||||
501 cdecl IMalloc16_AddRef(ptr) IMalloc16_fnAddRef
|
501 cdecl IMalloc16_AddRef(ptr) IMalloc16_fnAddRef
|
||||||
502 cdecl IMalloc16_Release(ptr) IMalloc16_fnRelease
|
502 cdecl IMalloc16_Release(ptr) IMalloc16_fnRelease
|
||||||
503 cdecl IMalloc16_Alloc(ptr long) IMalloc16_fnAlloc
|
503 cdecl IMalloc16_Alloc(ptr long) IMalloc16_fnAlloc
|
||||||
504 cdecl IMalloc16_Realloc(ptr segptr long) IMalloc16_fnRealloc
|
504 cdecl IMalloc16_Realloc(ptr segptr long) IMalloc16_fnRealloc
|
||||||
505 cdecl IMalloc16_Free(ptr segptr) IMalloc16_fnFree
|
505 cdecl IMalloc16_Free(ptr segptr) IMalloc16_fnFree
|
||||||
506 cdecl IMalloc16_GetSize(ptr segptr) IMalloc16_fnGetSize
|
506 cdecl IMalloc16_GetSize(ptr segptr) IMalloc16_fnGetSize
|
||||||
507 cdecl IMalloc16_DidAlloc(ptr segptr) IMalloc16_fnDidAlloc
|
507 cdecl IMalloc16_DidAlloc(ptr segptr) IMalloc16_fnDidAlloc
|
||||||
508 cdecl IMalloc16_HeapMinimize(ptr) IMalloc16_fnHeapMinimize
|
508 cdecl IMalloc16_HeapMinimize(ptr) IMalloc16_fnHeapMinimize
|
||||||
|
|
|
@ -112,7 +112,7 @@ struct proxy_manager
|
||||||
OXID oxid; /* object exported ID (RO) */
|
OXID oxid; /* object exported ID (RO) */
|
||||||
OID oid; /* object ID (RO) */
|
OID oid; /* object ID (RO) */
|
||||||
struct list interfaces; /* imported interfaces (CS cs) */
|
struct list interfaces; /* imported interfaces (CS cs) */
|
||||||
DWORD refs; /* proxy reference count (LOCK) */
|
LONG refs; /* proxy reference count (LOCK) */
|
||||||
CRITICAL_SECTION cs; /* thread safety for this object and children */
|
CRITICAL_SECTION cs; /* thread safety for this object and children */
|
||||||
ULONG sorflags; /* STDOBJREF flags (RO) */
|
ULONG sorflags; /* STDOBJREF flags (RO) */
|
||||||
IRemUnknown *remunk; /* proxy to IRemUnknown used for lifecycle management (CS cs) */
|
IRemUnknown *remunk; /* proxy to IRemUnknown used for lifecycle management (CS cs) */
|
||||||
|
@ -124,12 +124,12 @@ struct apartment
|
||||||
{
|
{
|
||||||
struct list entry;
|
struct list entry;
|
||||||
|
|
||||||
DWORD refs; /* refcount of the apartment (LOCK) */
|
LONG refs; /* refcount of the apartment (LOCK) */
|
||||||
DWORD model; /* threading model (RO) */
|
DWORD model; /* threading model (RO) */
|
||||||
DWORD tid; /* thread id (RO) */
|
DWORD tid; /* thread id (RO) */
|
||||||
HANDLE thread; /* thread handle (RO) */
|
HANDLE thread; /* thread handle (RO) */
|
||||||
OXID oxid; /* object exporter ID (RO) */
|
OXID oxid; /* object exporter ID (RO) */
|
||||||
DWORD ipidc; /* interface pointer ID counter, starts at 1 (LOCK) */
|
LONG ipidc; /* interface pointer ID counter, starts at 1 (LOCK) */
|
||||||
HWND win; /* message window (RO) */
|
HWND win; /* message window (RO) */
|
||||||
CRITICAL_SECTION cs; /* thread safety */
|
CRITICAL_SECTION cs; /* thread safety */
|
||||||
LPMESSAGEFILTER filter; /* message filter (CS cs) */
|
LPMESSAGEFILTER filter; /* message filter (CS cs) */
|
||||||
|
|
|
@ -54,7 +54,7 @@ typedef struct CompositeMonikerImpl{
|
||||||
*/
|
*/
|
||||||
const IROTDataVtbl* lpvtbl2; /* VTable relative to the IROTData interface.*/
|
const IROTDataVtbl* lpvtbl2; /* VTable relative to the IROTData interface.*/
|
||||||
|
|
||||||
ULONG ref; /* reference counter for this object */
|
LONG ref; /* reference counter for this object */
|
||||||
|
|
||||||
IMoniker** tabMoniker; /* dynamaic table containing all components (monikers) of this composite moniker */
|
IMoniker** tabMoniker; /* dynamaic table containing all components (monikers) of this composite moniker */
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ typedef struct EnumMonikerImpl{
|
||||||
|
|
||||||
const IEnumMonikerVtbl *lpVtbl; /* VTable relative to the IEnumMoniker interface.*/
|
const IEnumMonikerVtbl *lpVtbl; /* VTable relative to the IEnumMoniker interface.*/
|
||||||
|
|
||||||
ULONG ref; /* reference counter for this object */
|
LONG ref; /* reference counter for this object */
|
||||||
|
|
||||||
IMoniker** tabMoniker; /* dynamic table containing the enumerated monikers */
|
IMoniker** tabMoniker; /* dynamic table containing the enumerated monikers */
|
||||||
|
|
||||||
|
|
|
@ -103,7 +103,7 @@ struct DataCache
|
||||||
/*
|
/*
|
||||||
* Reference count of this object
|
* Reference count of this object
|
||||||
*/
|
*/
|
||||||
ULONG ref;
|
LONG ref;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IUnknown implementation of the outer object.
|
* IUnknown implementation of the outer object.
|
||||||
|
|
|
@ -78,7 +78,7 @@ struct DefaultHandler
|
||||||
/*
|
/*
|
||||||
* Reference count of this object
|
* Reference count of this object
|
||||||
*/
|
*/
|
||||||
ULONG ref;
|
LONG ref;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* IUnknown implementation of the outer object.
|
* IUnknown implementation of the outer object.
|
||||||
|
|
|
@ -131,7 +131,7 @@ typedef struct ErrorInfoImpl
|
||||||
const IErrorInfoVtbl *lpvtei;
|
const IErrorInfoVtbl *lpvtei;
|
||||||
const ICreateErrorInfoVtbl *lpvtcei;
|
const ICreateErrorInfoVtbl *lpvtcei;
|
||||||
const ISupportErrorInfoVtbl *lpvtsei;
|
const ISupportErrorInfoVtbl *lpvtsei;
|
||||||
DWORD ref;
|
LONG ref;
|
||||||
|
|
||||||
GUID m_Guid;
|
GUID m_Guid;
|
||||||
BSTR bstrSource;
|
BSTR bstrSource;
|
||||||
|
|
|
@ -53,7 +53,7 @@ typedef struct FileMonikerImpl{
|
||||||
*/
|
*/
|
||||||
const IROTDataVtbl* lpvtbl2; /* VTable relative to the IROTData interface.*/
|
const IROTDataVtbl* lpvtbl2; /* VTable relative to the IROTData interface.*/
|
||||||
|
|
||||||
ULONG ref; /* reference counter for this object */
|
LONG ref; /* reference counter for this object */
|
||||||
|
|
||||||
LPOLESTR filePathName; /* path string identified by this filemoniker */
|
LPOLESTR filePathName; /* path string identified by this filemoniker */
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(ole);
|
||||||
|
|
||||||
typedef struct _FTMarshalImpl {
|
typedef struct _FTMarshalImpl {
|
||||||
const IUnknownVtbl *lpVtbl;
|
const IUnknownVtbl *lpVtbl;
|
||||||
DWORD ref;
|
LONG ref;
|
||||||
const IMarshalVtbl *lpvtblFTM;
|
const IMarshalVtbl *lpvtblFTM;
|
||||||
|
|
||||||
IUnknown *pUnkOuter;
|
IUnknown *pUnkOuter;
|
||||||
|
|
|
@ -60,7 +60,7 @@ struct HGLOBALStreamImpl
|
||||||
/*
|
/*
|
||||||
* Reference count
|
* Reference count
|
||||||
*/
|
*/
|
||||||
ULONG ref;
|
LONG ref;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Support for the stream
|
* Support for the stream
|
||||||
|
|
|
@ -366,7 +366,7 @@ static const IMallocSpyVtbl VT_IMallocSpy;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
const IMallocSpyVtbl *lpVtbl;
|
const IMallocSpyVtbl *lpVtbl;
|
||||||
DWORD ref;
|
LONG ref;
|
||||||
} _MallocSpy;
|
} _MallocSpy;
|
||||||
|
|
||||||
/* this is the static object instance */
|
/* this is the static object instance */
|
||||||
|
|
|
@ -29,6 +29,11 @@ typedef CHAR OLECHAR16;
|
||||||
typedef LPSTR LPOLESTR16;
|
typedef LPSTR LPOLESTR16;
|
||||||
typedef LPCSTR LPCOLESTR16;
|
typedef LPCSTR LPCOLESTR16;
|
||||||
|
|
||||||
|
#define STDMETHOD16CALLTYPE __cdecl
|
||||||
|
#define STDMETHOD16(m) HRESULT (STDMETHOD16CALLTYPE *m)
|
||||||
|
#define STDMETHOD16_(t,m) t (STDMETHOD16CALLTYPE *m)
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* IMalloc16 interface
|
* IMalloc16 interface
|
||||||
*/
|
*/
|
||||||
|
@ -38,16 +43,16 @@ typedef LPCSTR LPCOLESTR16;
|
||||||
DECLARE_INTERFACE_(IMalloc16,IUnknown)
|
DECLARE_INTERFACE_(IMalloc16,IUnknown)
|
||||||
{
|
{
|
||||||
/*** IUnknown methods ***/
|
/*** IUnknown methods ***/
|
||||||
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
STDMETHOD16_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
||||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
STDMETHOD16_(ULONG,AddRef)(THIS) PURE;
|
||||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
STDMETHOD16_(ULONG,Release)(THIS) PURE;
|
||||||
/*** IMalloc16 methods ***/
|
/*** IMalloc16 methods ***/
|
||||||
STDMETHOD_(LPVOID,Alloc)(THIS_ DWORD cb) PURE;
|
STDMETHOD16_(LPVOID,Alloc)(THIS_ DWORD cb) PURE;
|
||||||
STDMETHOD_(LPVOID,Realloc)(THIS_ LPVOID pv, DWORD cb) PURE;
|
STDMETHOD16_(LPVOID,Realloc)(THIS_ LPVOID pv, DWORD cb) PURE;
|
||||||
STDMETHOD_(void,Free)(THIS_ LPVOID pv) PURE;
|
STDMETHOD16_(void,Free)(THIS_ LPVOID pv) PURE;
|
||||||
STDMETHOD_(DWORD,GetSize)(THIS_ LPVOID pv) PURE;
|
STDMETHOD16_(DWORD,GetSize)(THIS_ LPVOID pv) PURE;
|
||||||
STDMETHOD_(INT16,DidAlloc)(THIS_ LPVOID pv) PURE;
|
STDMETHOD16_(INT16,DidAlloc)(THIS_ LPVOID pv) PURE;
|
||||||
STDMETHOD_(LPVOID,HeapMinimize)(THIS) PURE;
|
STDMETHOD16_(LPVOID,HeapMinimize)(THIS) PURE;
|
||||||
};
|
};
|
||||||
#undef INTERFACE
|
#undef INTERFACE
|
||||||
|
|
||||||
|
@ -63,17 +68,17 @@ extern LPMALLOC16 IMalloc16_Constructor(void);
|
||||||
DECLARE_INTERFACE_(ILockBytes16,IUnknown)
|
DECLARE_INTERFACE_(ILockBytes16,IUnknown)
|
||||||
{
|
{
|
||||||
/*** IUnknown methods ***/
|
/*** IUnknown methods ***/
|
||||||
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
STDMETHOD16_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
||||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
STDMETHOD16_(ULONG,AddRef)(THIS) PURE;
|
||||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
STDMETHOD16_(ULONG,Release)(THIS) PURE;
|
||||||
/*** ILockBytes16 methods ***/
|
/*** ILockBytes16 methods ***/
|
||||||
STDMETHOD(ReadAt)(THIS_ ULARGE_INTEGER ulOffset, void *pv, ULONG cb, ULONG *pcbRead) PURE;
|
STDMETHOD16(ReadAt)(THIS_ ULARGE_INTEGER ulOffset, void *pv, ULONG cb, ULONG *pcbRead) PURE;
|
||||||
STDMETHOD(WriteAt)(THIS_ ULARGE_INTEGER ulOffset, const void *pv, ULONG cb, ULONG *pcbWritten) PURE;
|
STDMETHOD16(WriteAt)(THIS_ ULARGE_INTEGER ulOffset, const void *pv, ULONG cb, ULONG *pcbWritten) PURE;
|
||||||
STDMETHOD(Flush)(THIS) PURE;
|
STDMETHOD16(Flush)(THIS) PURE;
|
||||||
STDMETHOD(SetSize)(THIS_ ULARGE_INTEGER cb) PURE;
|
STDMETHOD16(SetSize)(THIS_ ULARGE_INTEGER cb) PURE;
|
||||||
STDMETHOD(LockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE;
|
STDMETHOD16(LockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE;
|
||||||
STDMETHOD(UnlockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE;
|
STDMETHOD16(UnlockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE;
|
||||||
STDMETHOD(Stat)(THIS_ STATSTG *pstatstg, DWORD grfStatFlag) PURE;
|
STDMETHOD16(Stat)(THIS_ STATSTG *pstatstg, DWORD grfStatFlag) PURE;
|
||||||
};
|
};
|
||||||
#undef INTERFACE
|
#undef INTERFACE
|
||||||
|
|
||||||
|
@ -98,22 +103,22 @@ typedef struct tagSTATSTG16
|
||||||
DECLARE_INTERFACE_(IStream16,ISequentialStream)
|
DECLARE_INTERFACE_(IStream16,ISequentialStream)
|
||||||
{
|
{
|
||||||
/*** IUnknown methods ***/
|
/*** IUnknown methods ***/
|
||||||
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
STDMETHOD16_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
||||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
STDMETHOD16_(ULONG,AddRef)(THIS) PURE;
|
||||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
STDMETHOD16_(ULONG,Release)(THIS) PURE;
|
||||||
/*** ISequentialStream methods ***/
|
/*** ISequentialStream methods ***/
|
||||||
STDMETHOD_(HRESULT,Read)(THIS_ void* pv, ULONG cb, ULONG* pcbRead) PURE;
|
STDMETHOD16_(HRESULT,Read)(THIS_ void* pv, ULONG cb, ULONG* pcbRead) PURE;
|
||||||
STDMETHOD_(HRESULT,Write)(THIS_ const void* pv, ULONG cb, ULONG* pcbWritten) PURE;
|
STDMETHOD16_(HRESULT,Write)(THIS_ const void* pv, ULONG cb, ULONG* pcbWritten) PURE;
|
||||||
/*** IStream16 methods ***/
|
/*** IStream16 methods ***/
|
||||||
STDMETHOD(Seek)(THIS_ LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition) PURE;
|
STDMETHOD16(Seek)(THIS_ LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER* plibNewPosition) PURE;
|
||||||
STDMETHOD(SetSize)(THIS_ ULARGE_INTEGER libNewSize) PURE;
|
STDMETHOD16(SetSize)(THIS_ ULARGE_INTEGER libNewSize) PURE;
|
||||||
STDMETHOD(CopyTo)(THIS_ IStream16* pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten) PURE;
|
STDMETHOD16(CopyTo)(THIS_ IStream16* pstm, ULARGE_INTEGER cb, ULARGE_INTEGER* pcbRead, ULARGE_INTEGER* pcbWritten) PURE;
|
||||||
STDMETHOD(Commit)(THIS_ DWORD grfCommitFlags) PURE;
|
STDMETHOD16(Commit)(THIS_ DWORD grfCommitFlags) PURE;
|
||||||
STDMETHOD(Revert)(THIS) PURE;
|
STDMETHOD16(Revert)(THIS) PURE;
|
||||||
STDMETHOD(LockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE;
|
STDMETHOD16(LockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE;
|
||||||
STDMETHOD(UnlockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE;
|
STDMETHOD16(UnlockRegion)(THIS_ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) PURE;
|
||||||
STDMETHOD(Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE;
|
STDMETHOD16(Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE;
|
||||||
STDMETHOD(Clone)(THIS_ IStream16** ppstm) PURE;
|
STDMETHOD16(Clone)(THIS_ IStream16** ppstm) PURE;
|
||||||
};
|
};
|
||||||
#undef INTERFACE
|
#undef INTERFACE
|
||||||
|
|
||||||
|
@ -125,25 +130,25 @@ typedef OLECHAR16 **SNB16;
|
||||||
DECLARE_INTERFACE_(IStorage16,IUnknown)
|
DECLARE_INTERFACE_(IStorage16,IUnknown)
|
||||||
{
|
{
|
||||||
/*** IUnknown methods ***/
|
/*** IUnknown methods ***/
|
||||||
STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
STDMETHOD16_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
|
||||||
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
STDMETHOD16_(ULONG,AddRef)(THIS) PURE;
|
||||||
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
STDMETHOD16_(ULONG,Release)(THIS) PURE;
|
||||||
/*** IStorage16 methods ***/
|
/*** IStorage16 methods ***/
|
||||||
STDMETHOD_(HRESULT,CreateStream)(THIS_ LPCOLESTR16 pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream16** ppstm) PURE;
|
STDMETHOD16_(HRESULT,CreateStream)(THIS_ LPCOLESTR16 pwcsName, DWORD grfMode, DWORD reserved1, DWORD reserved2, IStream16** ppstm) PURE;
|
||||||
STDMETHOD_(HRESULT,OpenStream)(THIS_ LPCOLESTR16 pwcsName, void* reserved1, DWORD grfMode, DWORD reserved2, IStream16** ppstm) PURE;
|
STDMETHOD16_(HRESULT,OpenStream)(THIS_ LPCOLESTR16 pwcsName, void* reserved1, DWORD grfMode, DWORD reserved2, IStream16** ppstm) PURE;
|
||||||
STDMETHOD_(HRESULT,CreateStorage)(THIS_ LPCOLESTR16 pwcsName, DWORD grfMode, DWORD dwStgFmt, DWORD reserved2, IStorage16** ppstg) PURE;
|
STDMETHOD16_(HRESULT,CreateStorage)(THIS_ LPCOLESTR16 pwcsName, DWORD grfMode, DWORD dwStgFmt, DWORD reserved2, IStorage16** ppstg) PURE;
|
||||||
STDMETHOD_(HRESULT,OpenStorage)(THIS_ LPCOLESTR16 pwcsName, IStorage16* pstgPriority, DWORD grfMode, SNB16 snbExclude, DWORD reserved, IStorage16** ppstg) PURE;
|
STDMETHOD16_(HRESULT,OpenStorage)(THIS_ LPCOLESTR16 pwcsName, IStorage16* pstgPriority, DWORD grfMode, SNB16 snbExclude, DWORD reserved, IStorage16** ppstg) PURE;
|
||||||
STDMETHOD_(HRESULT,CopyTo)(THIS_ DWORD ciidExclude, const IID* rgiidExclude, SNB16 snbExclude, IStorage16* pstgDest) PURE;
|
STDMETHOD16_(HRESULT,CopyTo)(THIS_ DWORD ciidExclude, const IID* rgiidExclude, SNB16 snbExclude, IStorage16* pstgDest) PURE;
|
||||||
STDMETHOD_(HRESULT,MoveElementTo)(THIS_ LPCOLESTR16 pwcsName, IStorage16* pstgDest, LPCOLESTR16 pwcsNewName, DWORD grfFlags) PURE;
|
STDMETHOD16_(HRESULT,MoveElementTo)(THIS_ LPCOLESTR16 pwcsName, IStorage16* pstgDest, LPCOLESTR16 pwcsNewName, DWORD grfFlags) PURE;
|
||||||
STDMETHOD_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE;
|
STDMETHOD16_(HRESULT,Commit)(THIS_ DWORD grfCommitFlags) PURE;
|
||||||
STDMETHOD_(HRESULT,Revert)(THIS) PURE;
|
STDMETHOD16_(HRESULT,Revert)(THIS) PURE;
|
||||||
STDMETHOD_(HRESULT,EnumElements)(THIS_ DWORD reserved1, void* reserved2, DWORD reserved3, IEnumSTATSTG** ppenum) PURE;
|
STDMETHOD16_(HRESULT,EnumElements)(THIS_ DWORD reserved1, void* reserved2, DWORD reserved3, IEnumSTATSTG** ppenum) PURE;
|
||||||
STDMETHOD_(HRESULT,DestroyElement)(THIS_ LPCOLESTR16 pwcsName) PURE;
|
STDMETHOD16_(HRESULT,DestroyElement)(THIS_ LPCOLESTR16 pwcsName) PURE;
|
||||||
STDMETHOD_(HRESULT,RenameElement)(THIS_ LPCOLESTR16 pwcsOldName, LPCOLESTR16 pwcsNewName) PURE;
|
STDMETHOD16_(HRESULT,RenameElement)(THIS_ LPCOLESTR16 pwcsOldName, LPCOLESTR16 pwcsNewName) PURE;
|
||||||
STDMETHOD_(HRESULT,SetElementTimes)(THIS_ LPCOLESTR16 pwcsName, const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime) PURE;
|
STDMETHOD16_(HRESULT,SetElementTimes)(THIS_ LPCOLESTR16 pwcsName, const FILETIME* pctime, const FILETIME* patime, const FILETIME* pmtime) PURE;
|
||||||
STDMETHOD_(HRESULT,SetClass)(THIS_ REFCLSID clsid) PURE;
|
STDMETHOD16_(HRESULT,SetClass)(THIS_ REFCLSID clsid) PURE;
|
||||||
STDMETHOD_(HRESULT,SetStateBits)(THIS_ DWORD grfStateBits, DWORD grfMask) PURE;
|
STDMETHOD16_(HRESULT,SetStateBits)(THIS_ DWORD grfStateBits, DWORD grfMask) PURE;
|
||||||
STDMETHOD_(HRESULT,Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE;
|
STDMETHOD16_(HRESULT,Stat)(THIS_ STATSTG* pstatstg, DWORD grfStatFlag) PURE;
|
||||||
};
|
};
|
||||||
#undef INTERFACE
|
#undef INTERFACE
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ typedef struct ItemMonikerImpl{
|
||||||
*/
|
*/
|
||||||
const IROTDataVtbl* lpvtbl2; /* VTable relative to the IROTData interface.*/
|
const IROTDataVtbl* lpvtbl2; /* VTable relative to the IROTData interface.*/
|
||||||
|
|
||||||
ULONG ref; /* reference counter for this object */
|
LONG ref; /* reference counter for this object */
|
||||||
|
|
||||||
LPOLESTR itemName; /* item name identified by this ItemMoniker */
|
LPOLESTR itemName; /* item name identified by this ItemMoniker */
|
||||||
|
|
||||||
|
|
|
@ -85,18 +85,27 @@ inline static HRESULT get_facbuf_for_iid(REFIID riid, IPSFactoryBuffer **facbuf)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* creates a new stub manager */
|
/* creates a new stub manager */
|
||||||
HRESULT marshal_object(APARTMENT *apt, STDOBJREF *stdobjref, REFIID riid, IUnknown *obj, MSHLFLAGS mshlflags)
|
HRESULT marshal_object(APARTMENT *apt, STDOBJREF *stdobjref, REFIID riid, IUnknown *object, MSHLFLAGS mshlflags)
|
||||||
{
|
{
|
||||||
struct stub_manager *manager;
|
struct stub_manager *manager;
|
||||||
struct ifstub *ifstub;
|
struct ifstub *ifstub;
|
||||||
BOOL tablemarshal;
|
BOOL tablemarshal;
|
||||||
IRpcStubBuffer *stub = NULL;
|
IRpcStubBuffer *stub = NULL;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
IUnknown *iobject = NULL; /* object of type riid */
|
||||||
|
|
||||||
hr = apartment_getoxid(apt, &stdobjref->oxid);
|
hr = apartment_getoxid(apt, &stdobjref->oxid);
|
||||||
if (hr != S_OK)
|
if (hr != S_OK)
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
|
hr = IUnknown_QueryInterface(object, riid, (void **)&iobject);
|
||||||
|
if (hr != S_OK)
|
||||||
|
{
|
||||||
|
ERR("object doesn't expose interface %s, failing with error 0x%08lx\n",
|
||||||
|
debugstr_guid(riid), hr);
|
||||||
|
return E_NOINTERFACE;
|
||||||
|
}
|
||||||
|
|
||||||
/* IUnknown doesn't require a stub buffer, because it never goes out on
|
/* IUnknown doesn't require a stub buffer, because it never goes out on
|
||||||
* the wire */
|
* the wire */
|
||||||
if (!IsEqualIID(riid, &IID_IUnknown))
|
if (!IsEqualIID(riid, &IID_IUnknown))
|
||||||
|
@ -107,19 +116,19 @@ HRESULT marshal_object(APARTMENT *apt, STDOBJREF *stdobjref, REFIID riid, IUnkno
|
||||||
if (hr != S_OK)
|
if (hr != S_OK)
|
||||||
{
|
{
|
||||||
ERR("couldn't get IPSFactory buffer for interface %s\n", debugstr_guid(riid));
|
ERR("couldn't get IPSFactory buffer for interface %s\n", debugstr_guid(riid));
|
||||||
|
IUnknown_Release(iobject);
|
||||||
return hr;
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
hr = IPSFactoryBuffer_CreateStub(psfb, riid, obj, &stub);
|
hr = IPSFactoryBuffer_CreateStub(psfb, riid, iobject, &stub);
|
||||||
IPSFactoryBuffer_Release(psfb);
|
IPSFactoryBuffer_Release(psfb);
|
||||||
if (hr != S_OK)
|
if (hr != S_OK)
|
||||||
{
|
{
|
||||||
ERR("Failed to create an IRpcStubBuffer from IPSFactory for %s\n", debugstr_guid(riid));
|
ERR("Failed to create an IRpcStubBuffer from IPSFactory for %s\n", debugstr_guid(riid));
|
||||||
|
IUnknown_Release(iobject);
|
||||||
return hr;
|
return hr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else /* need to addref object anyway */
|
|
||||||
IUnknown_AddRef(obj);
|
|
||||||
|
|
||||||
if (mshlflags & MSHLFLAGS_NOPING)
|
if (mshlflags & MSHLFLAGS_NOPING)
|
||||||
stdobjref->flags = SORF_NOPING;
|
stdobjref->flags = SORF_NOPING;
|
||||||
|
@ -128,16 +137,17 @@ HRESULT marshal_object(APARTMENT *apt, STDOBJREF *stdobjref, REFIID riid, IUnkno
|
||||||
|
|
||||||
/* FIXME: what happens if we register an interface twice with different
|
/* FIXME: what happens if we register an interface twice with different
|
||||||
* marshaling flags? */
|
* marshaling flags? */
|
||||||
if ((manager = get_stub_manager_from_object(apt, obj)))
|
if ((manager = get_stub_manager_from_object(apt, object)))
|
||||||
TRACE("registering new ifstub on pre-existing manager\n");
|
TRACE("registering new ifstub on pre-existing manager\n");
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TRACE("constructing new stub manager\n");
|
TRACE("constructing new stub manager\n");
|
||||||
|
|
||||||
manager = new_stub_manager(apt, obj, mshlflags);
|
manager = new_stub_manager(apt, object, mshlflags);
|
||||||
if (!manager)
|
if (!manager)
|
||||||
{
|
{
|
||||||
if (stub) IRpcStubBuffer_Release(stub);
|
if (stub) IRpcStubBuffer_Release(stub);
|
||||||
|
IUnknown_Release(iobject);
|
||||||
return E_OUTOFMEMORY;
|
return E_OUTOFMEMORY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -145,10 +155,11 @@ HRESULT marshal_object(APARTMENT *apt, STDOBJREF *stdobjref, REFIID riid, IUnkno
|
||||||
|
|
||||||
tablemarshal = ((mshlflags & MSHLFLAGS_TABLESTRONG) || (mshlflags & MSHLFLAGS_TABLEWEAK));
|
tablemarshal = ((mshlflags & MSHLFLAGS_TABLESTRONG) || (mshlflags & MSHLFLAGS_TABLEWEAK));
|
||||||
|
|
||||||
ifstub = stub_manager_new_ifstub(manager, stub, obj, riid);
|
ifstub = stub_manager_new_ifstub(manager, stub, iobject, riid);
|
||||||
|
IUnknown_Release(iobject);
|
||||||
|
if (stub) IRpcStubBuffer_Release(stub);
|
||||||
if (!ifstub)
|
if (!ifstub)
|
||||||
{
|
{
|
||||||
IRpcStubBuffer_Release(stub);
|
|
||||||
stub_manager_int_release(manager);
|
stub_manager_int_release(manager);
|
||||||
/* FIXME: should we do another release to completely destroy the
|
/* FIXME: should we do another release to completely destroy the
|
||||||
* stub manager? */
|
* stub manager? */
|
||||||
|
@ -763,7 +774,7 @@ HRESULT apartment_disconnectproxies(struct apartment *apt)
|
||||||
typedef struct _StdMarshalImpl
|
typedef struct _StdMarshalImpl
|
||||||
{
|
{
|
||||||
const IMarshalVtbl *lpvtbl;
|
const IMarshalVtbl *lpvtbl;
|
||||||
DWORD ref;
|
LONG ref;
|
||||||
|
|
||||||
IID iid;
|
IID iid;
|
||||||
DWORD dwDestContext;
|
DWORD dwDestContext;
|
||||||
|
@ -826,7 +837,6 @@ StdMarshalImpl_MarshalInterface(
|
||||||
void* pvDestContext, DWORD mshlflags)
|
void* pvDestContext, DWORD mshlflags)
|
||||||
{
|
{
|
||||||
STDOBJREF stdobjref;
|
STDOBJREF stdobjref;
|
||||||
IUnknown *pUnk;
|
|
||||||
ULONG res;
|
ULONG res;
|
||||||
HRESULT hres;
|
HRESULT hres;
|
||||||
APARTMENT *apt = COM_CurrentApt();
|
APARTMENT *apt = COM_CurrentApt();
|
||||||
|
@ -842,18 +852,7 @@ StdMarshalImpl_MarshalInterface(
|
||||||
/* make sure this apartment can be reached from other threads / processes */
|
/* make sure this apartment can be reached from other threads / processes */
|
||||||
RPC_StartRemoting(apt);
|
RPC_StartRemoting(apt);
|
||||||
|
|
||||||
hres = IUnknown_QueryInterface((LPUNKNOWN)pv, riid, (LPVOID*)&pUnk);
|
hres = marshal_object(apt, &stdobjref, riid, (IUnknown *)pv, mshlflags);
|
||||||
if (hres != S_OK)
|
|
||||||
{
|
|
||||||
ERR("object doesn't expose interface %s, failing with error 0x%08lx\n",
|
|
||||||
debugstr_guid(riid), hres);
|
|
||||||
return E_NOINTERFACE;
|
|
||||||
}
|
|
||||||
|
|
||||||
hres = marshal_object(apt, &stdobjref, riid, pUnk, mshlflags);
|
|
||||||
|
|
||||||
IUnknown_Release(pUnk);
|
|
||||||
|
|
||||||
if (hres)
|
if (hres)
|
||||||
{
|
{
|
||||||
ERR("Failed to create ifstub, hres=0x%lx\n", hres);
|
ERR("Failed to create ifstub, hres=0x%lx\n", hres);
|
||||||
|
|
|
@ -57,7 +57,7 @@ struct HGLOBALLockBytesImpl
|
||||||
/*
|
/*
|
||||||
* Reference count
|
* Reference count
|
||||||
*/
|
*/
|
||||||
ULONG ref;
|
LONG ref;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Support for the LockBytes object
|
* Support for the LockBytes object
|
||||||
|
@ -155,6 +155,24 @@ static const ILockBytesVtbl HGLOBALLockBytesImpl_Vtbl =
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* CreateILockBytesOnHGlobal [OLE32.@]
|
* CreateILockBytesOnHGlobal [OLE32.@]
|
||||||
|
*
|
||||||
|
* Create a byte array object which is intended to be the compound file foundation.
|
||||||
|
* This object supports a COM implementation of the ILockBytes interface.
|
||||||
|
*
|
||||||
|
* PARAMS
|
||||||
|
* hGlobal [ I] Global memory handle
|
||||||
|
* fDeleteOnRelease [ I] Whether the handle should be freed when the object is released.
|
||||||
|
* ppLkbyt [ O] Address of ILockBytes pointer that receives
|
||||||
|
* the interface pointer to the new byte array object.
|
||||||
|
*
|
||||||
|
* RETURNS
|
||||||
|
* Success: S_OK
|
||||||
|
*
|
||||||
|
* NOTES
|
||||||
|
* The supplied ILockBytes pointer can be used by the StgCreateDocfileOnILockBytes
|
||||||
|
* function to build a compound file on top of this byte array object.
|
||||||
|
* The ILockBytes interface instance calls the GlobalReAlloc function to grow
|
||||||
|
* the memory block as required.
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI CreateILockBytesOnHGlobal(HGLOBAL hGlobal,
|
HRESULT WINAPI CreateILockBytesOnHGlobal(HGLOBAL hGlobal,
|
||||||
BOOL fDeleteOnRelease,
|
BOOL fDeleteOnRelease,
|
||||||
|
@ -176,6 +194,17 @@ HRESULT WINAPI CreateILockBytesOnHGlobal(HGLOBAL hGlobal,
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* GetHGlobalFromILockBytes [OLE32.@]
|
* GetHGlobalFromILockBytes [OLE32.@]
|
||||||
|
*
|
||||||
|
* Retrieve a global memory handle to a byte array object created
|
||||||
|
* using the CreateILockBytesOnHGlobal function.
|
||||||
|
*
|
||||||
|
* PARAMS
|
||||||
|
* plkbyt [ I] Pointer to the ILockBytes interface on byte array object
|
||||||
|
* phglobal [ O] Address to store a global memory handle
|
||||||
|
* RETURNS
|
||||||
|
* S_OK if *phglobal has a correct value
|
||||||
|
* E_INVALIDARG if any parameters are invalid
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI GetHGlobalFromILockBytes(ILockBytes* plkbyt, HGLOBAL* phglobal)
|
HRESULT WINAPI GetHGlobalFromILockBytes(ILockBytes* plkbyt, HGLOBAL* phglobal)
|
||||||
{
|
{
|
||||||
|
@ -224,10 +253,10 @@ HRESULT WINAPI GetHGlobalFromILockBytes(ILockBytes* plkbyt, HGLOBAL* phglobal)
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* This is the constructor for the HGLOBALLockBytesImpl class.
|
* This is the constructor for the HGLOBALLockBytesImpl class.
|
||||||
*
|
*
|
||||||
* Params:
|
* PARAMS
|
||||||
* hGlobal - Handle that will support the stream. can be NULL.
|
* hGlobal [ I] Handle that will support the stream. can be NULL.
|
||||||
* fDeleteOnRelease - Flag set to TRUE if the HGLOBAL will be released
|
* fDeleteOnRelease [ I] Flag set to TRUE if the HGLOBAL will be released
|
||||||
* when the IStream object is destroyed.
|
* when the IStream object is destroyed.
|
||||||
*/
|
*/
|
||||||
HGLOBALLockBytesImpl* HGLOBALLockBytesImpl_Construct(HGLOBAL hGlobal,
|
HGLOBALLockBytesImpl* HGLOBALLockBytesImpl_Construct(HGLOBAL hGlobal,
|
||||||
BOOL fDeleteOnRelease)
|
BOOL fDeleteOnRelease)
|
||||||
|
|
|
@ -53,7 +53,7 @@ struct HGLOBALLockBytesImpl16
|
||||||
* since we want to cast this in an ILockBytes pointer
|
* since we want to cast this in an ILockBytes pointer
|
||||||
*/
|
*/
|
||||||
const ILockBytes16Vtbl *lpVtbl;
|
const ILockBytes16Vtbl *lpVtbl;
|
||||||
ULONG ref;
|
LONG ref;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Support for the LockBytes object
|
* Support for the LockBytes object
|
||||||
|
@ -73,61 +73,6 @@ struct HGLOBALLockBytesImpl16
|
||||||
|
|
||||||
typedef struct HGLOBALLockBytesImpl16 HGLOBALLockBytesImpl16;
|
typedef struct HGLOBALLockBytesImpl16 HGLOBALLockBytesImpl16;
|
||||||
|
|
||||||
HGLOBALLockBytesImpl16* HGLOBALLockBytesImpl16_Construct(
|
|
||||||
HGLOBAL16 hGlobal,
|
|
||||||
BOOL16 fDeleteOnRelease);
|
|
||||||
|
|
||||||
void HGLOBALLockBytesImpl16_Destroy(HGLOBALLockBytesImpl16* This);
|
|
||||||
|
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_QueryInterface(
|
|
||||||
ILockBytes16* iface,
|
|
||||||
REFIID riid, /* [in] */
|
|
||||||
void** ppvObject); /* [out][iid_is] */
|
|
||||||
|
|
||||||
ULONG WINAPI HGLOBALLockBytesImpl16_AddRef(
|
|
||||||
ILockBytes16* iface);
|
|
||||||
|
|
||||||
ULONG WINAPI HGLOBALLockBytesImpl16_Release(
|
|
||||||
ILockBytes16* iface);
|
|
||||||
|
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_ReadAt(
|
|
||||||
ILockBytes16* iface,
|
|
||||||
ULARGE_INTEGER ulOffset, /* [in] */
|
|
||||||
void* pv, /* [out][length_is][size_is] */
|
|
||||||
ULONG cb, /* [in] */
|
|
||||||
ULONG* pcbRead); /* [out] */
|
|
||||||
|
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_WriteAt(
|
|
||||||
ILockBytes16* iface,
|
|
||||||
ULARGE_INTEGER ulOffset, /* [in] */
|
|
||||||
const void* pv, /* [in][size_is] */
|
|
||||||
ULONG cb, /* [in] */
|
|
||||||
ULONG* pcbWritten); /* [out] */
|
|
||||||
|
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_Flush(
|
|
||||||
ILockBytes16* iface);
|
|
||||||
|
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_SetSize(
|
|
||||||
ILockBytes16* iface,
|
|
||||||
ULARGE_INTEGER libNewSize); /* [in] */
|
|
||||||
|
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_LockRegion(
|
|
||||||
ILockBytes16* iface,
|
|
||||||
ULARGE_INTEGER libOffset, /* [in] */
|
|
||||||
ULARGE_INTEGER cb, /* [in] */
|
|
||||||
DWORD dwLockType); /* [in] */
|
|
||||||
|
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_UnlockRegion(
|
|
||||||
ILockBytes16* iface,
|
|
||||||
ULARGE_INTEGER libOffset, /* [in] */
|
|
||||||
ULARGE_INTEGER cb, /* [in] */
|
|
||||||
DWORD dwLockType); /* [in] */
|
|
||||||
|
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_Stat(
|
|
||||||
ILockBytes16* iface,
|
|
||||||
STATSTG16* pstatstg, /* [out] */
|
|
||||||
DWORD grfStatFlag); /* [in] */
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
*
|
*
|
||||||
* HGLOBALLockBytesImpl16 implementation
|
* HGLOBALLockBytesImpl16 implementation
|
||||||
|
@ -142,7 +87,7 @@ HRESULT WINAPI HGLOBALLockBytesImpl16_Stat(
|
||||||
* fDeleteOnRelease - Flag set to TRUE if the HGLOBAL16 will be released
|
* fDeleteOnRelease - Flag set to TRUE if the HGLOBAL16 will be released
|
||||||
* when the IStream object is destroyed.
|
* when the IStream object is destroyed.
|
||||||
*/
|
*/
|
||||||
HGLOBALLockBytesImpl16*
|
static HGLOBALLockBytesImpl16*
|
||||||
HGLOBALLockBytesImpl16_Construct(HGLOBAL16 hGlobal,
|
HGLOBALLockBytesImpl16_Construct(HGLOBAL16 hGlobal,
|
||||||
BOOL16 fDeleteOnRelease)
|
BOOL16 fDeleteOnRelease)
|
||||||
{
|
{
|
||||||
|
@ -207,7 +152,7 @@ HGLOBALLockBytesImpl16_Construct(HGLOBAL16 hGlobal,
|
||||||
* HGLOBALLockBytesImpl16 class. The pointer passed-in to this function will be
|
* HGLOBALLockBytesImpl16 class. The pointer passed-in to this function will be
|
||||||
* freed and will not be valid anymore.
|
* freed and will not be valid anymore.
|
||||||
*/
|
*/
|
||||||
void HGLOBALLockBytesImpl16_Destroy(HGLOBALLockBytesImpl16* This)
|
static void HGLOBALLockBytesImpl16_Destroy(HGLOBALLockBytesImpl16* This)
|
||||||
{
|
{
|
||||||
TRACE("()\n");
|
TRACE("()\n");
|
||||||
/*
|
/*
|
||||||
|
@ -225,11 +170,25 @@ void HGLOBALLockBytesImpl16_Destroy(HGLOBALLockBytesImpl16* This)
|
||||||
HeapFree(GetProcessHeap(), 0, This);
|
HeapFree(GetProcessHeap(), 0, This);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* This implements the IUnknown method AddRef for this
|
||||||
|
* class
|
||||||
|
*/
|
||||||
|
ULONG HGLOBALLockBytesImpl16_AddRef(ILockBytes16* iface)
|
||||||
|
{
|
||||||
|
HGLOBALLockBytesImpl16* const This=(HGLOBALLockBytesImpl16*)iface;
|
||||||
|
|
||||||
|
TRACE("(%p)\n",This);
|
||||||
|
|
||||||
|
return InterlockedIncrement(&This->ref);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* This implements the IUnknown method QueryInterface for this
|
* This implements the IUnknown method QueryInterface for this
|
||||||
* class
|
* class
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_QueryInterface(
|
HRESULT HGLOBALLockBytesImpl16_QueryInterface(
|
||||||
ILockBytes16* iface, /* [in] SEGPTR */
|
ILockBytes16* iface, /* [in] SEGPTR */
|
||||||
REFIID riid, /* [in] */
|
REFIID riid, /* [in] */
|
||||||
void** ppvObject) /* [out][iid_is] (ptr to SEGPTR!) */
|
void** ppvObject) /* [out][iid_is] (ptr to SEGPTR!) */
|
||||||
|
@ -258,8 +217,10 @@ HRESULT WINAPI HGLOBALLockBytesImpl16_QueryInterface(
|
||||||
/*
|
/*
|
||||||
* Check that we obtained an interface.
|
* Check that we obtained an interface.
|
||||||
*/
|
*/
|
||||||
if ((*ppvObject)==0)
|
if ((*ppvObject)==0) {
|
||||||
|
FIXME("Unknown IID %s\n", debugstr_guid(riid));
|
||||||
return E_NOINTERFACE;
|
return E_NOINTERFACE;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Query Interface always increases the reference count by one when it is
|
* Query Interface always increases the reference count by one when it is
|
||||||
|
@ -270,24 +231,11 @@ HRESULT WINAPI HGLOBALLockBytesImpl16_QueryInterface(
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* This implements the IUnknown method AddRef for this
|
|
||||||
* class
|
|
||||||
*/
|
|
||||||
ULONG WINAPI HGLOBALLockBytesImpl16_AddRef(ILockBytes16* iface)
|
|
||||||
{
|
|
||||||
HGLOBALLockBytesImpl16* const This=(HGLOBALLockBytesImpl16*)iface;
|
|
||||||
|
|
||||||
TRACE("(%p)\n",This);
|
|
||||||
|
|
||||||
return InterlockedIncrement(&This->ref);
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* This implements the IUnknown method Release for this
|
* This implements the IUnknown method Release for this
|
||||||
* class
|
* class
|
||||||
*/
|
*/
|
||||||
ULONG WINAPI HGLOBALLockBytesImpl16_Release(ILockBytes16* iface)
|
ULONG HGLOBALLockBytesImpl16_Release(ILockBytes16* iface)
|
||||||
{
|
{
|
||||||
HGLOBALLockBytesImpl16* const This=(HGLOBALLockBytesImpl16*)iface;
|
HGLOBALLockBytesImpl16* const This=(HGLOBALLockBytesImpl16*)iface;
|
||||||
ULONG ref;
|
ULONG ref;
|
||||||
|
@ -312,7 +260,7 @@ ULONG WINAPI HGLOBALLockBytesImpl16_Release(ILockBytes16* iface)
|
||||||
*
|
*
|
||||||
* See the documentation of ILockBytes for more info.
|
* See the documentation of ILockBytes for more info.
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_ReadAt(
|
HRESULT HGLOBALLockBytesImpl16_ReadAt(
|
||||||
ILockBytes16* iface,
|
ILockBytes16* iface,
|
||||||
ULARGE_INTEGER ulOffset, /* [in] */
|
ULARGE_INTEGER ulOffset, /* [in] */
|
||||||
void* pv, /* [out][length_is][size_is] */
|
void* pv, /* [out][length_is][size_is] */
|
||||||
|
@ -377,6 +325,44 @@ HRESULT WINAPI HGLOBALLockBytesImpl16_ReadAt(
|
||||||
return STG_E_READFAULT;
|
return STG_E_READFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* This method is part of the ILockBytes interface.
|
||||||
|
*
|
||||||
|
* It will change the size of the byte array.
|
||||||
|
*
|
||||||
|
* See the documentation of ILockBytes for more info.
|
||||||
|
*/
|
||||||
|
HRESULT HGLOBALLockBytesImpl16_SetSize(
|
||||||
|
ILockBytes16* iface,
|
||||||
|
ULARGE_INTEGER libNewSize) /* [in] */
|
||||||
|
{
|
||||||
|
HGLOBALLockBytesImpl16* const This=(HGLOBALLockBytesImpl16*)iface;
|
||||||
|
HGLOBAL16 supportHandle;
|
||||||
|
|
||||||
|
TRACE("(%p,%ld)\n",This,libNewSize.u.LowPart);
|
||||||
|
/*
|
||||||
|
* As documented.
|
||||||
|
*/
|
||||||
|
if (libNewSize.u.HighPart != 0)
|
||||||
|
return STG_E_INVALIDFUNCTION;
|
||||||
|
|
||||||
|
if (This->byteArraySize.u.LowPart == libNewSize.u.LowPart)
|
||||||
|
return S_OK;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Re allocate the HGlobal to fit the new size of the stream.
|
||||||
|
*/
|
||||||
|
supportHandle = GlobalReAlloc16(This->supportHandle, libNewSize.u.LowPart, 0);
|
||||||
|
|
||||||
|
if (supportHandle == 0)
|
||||||
|
return STG_E_MEDIUMFULL;
|
||||||
|
|
||||||
|
This->supportHandle = supportHandle;
|
||||||
|
This->byteArraySize.u.LowPart = libNewSize.u.LowPart;
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* This method is part of the ILockBytes interface.
|
* This method is part of the ILockBytes interface.
|
||||||
*
|
*
|
||||||
|
@ -385,7 +371,7 @@ HRESULT WINAPI HGLOBALLockBytesImpl16_ReadAt(
|
||||||
*
|
*
|
||||||
* See the documentation of ILockBytes for more info.
|
* See the documentation of ILockBytes for more info.
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_WriteAt(
|
HRESULT HGLOBALLockBytesImpl16_WriteAt(
|
||||||
ILockBytes16* iface,
|
ILockBytes16* iface,
|
||||||
ULARGE_INTEGER ulOffset, /* [in] */
|
ULARGE_INTEGER ulOffset, /* [in] */
|
||||||
const void* pv, /* [in][size_is] */
|
const void* pv, /* [in][size_is] */
|
||||||
|
@ -447,50 +433,12 @@ HRESULT WINAPI HGLOBALLockBytesImpl16_WriteAt(
|
||||||
*
|
*
|
||||||
* See the documentation of ILockBytes for more info.
|
* See the documentation of ILockBytes for more info.
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_Flush(ILockBytes16* iface)
|
HRESULT HGLOBALLockBytesImpl16_Flush(ILockBytes16* iface)
|
||||||
{
|
{
|
||||||
TRACE("(%p)\n",iface);
|
TRACE("(%p)\n",iface);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
|
||||||
* This method is part of the ILockBytes interface.
|
|
||||||
*
|
|
||||||
* It will change the size of the byte array.
|
|
||||||
*
|
|
||||||
* See the documentation of ILockBytes for more info.
|
|
||||||
*/
|
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_SetSize(
|
|
||||||
ILockBytes16* iface,
|
|
||||||
ULARGE_INTEGER libNewSize) /* [in] */
|
|
||||||
{
|
|
||||||
HGLOBALLockBytesImpl16* const This=(HGLOBALLockBytesImpl16*)iface;
|
|
||||||
HGLOBAL16 supportHandle;
|
|
||||||
|
|
||||||
TRACE("(%p,%ld)\n",This,libNewSize.u.LowPart);
|
|
||||||
/*
|
|
||||||
* As documented.
|
|
||||||
*/
|
|
||||||
if (libNewSize.u.HighPart != 0)
|
|
||||||
return STG_E_INVALIDFUNCTION;
|
|
||||||
|
|
||||||
if (This->byteArraySize.u.LowPart == libNewSize.u.LowPart)
|
|
||||||
return S_OK;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Re allocate the HGlobal to fit the new size of the stream.
|
|
||||||
*/
|
|
||||||
supportHandle = GlobalReAlloc16(This->supportHandle, libNewSize.u.LowPart, 0);
|
|
||||||
|
|
||||||
if (supportHandle == 0)
|
|
||||||
return STG_E_MEDIUMFULL;
|
|
||||||
|
|
||||||
This->supportHandle = supportHandle;
|
|
||||||
This->byteArraySize.u.LowPart = libNewSize.u.LowPart;
|
|
||||||
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* This method is part of the ILockBytes interface.
|
* This method is part of the ILockBytes interface.
|
||||||
*
|
*
|
||||||
|
@ -498,7 +446,7 @@ HRESULT WINAPI HGLOBALLockBytesImpl16_SetSize(
|
||||||
*
|
*
|
||||||
* See the documentation of ILockBytes for more info.
|
* See the documentation of ILockBytes for more info.
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_LockRegion(
|
HRESULT HGLOBALLockBytesImpl16_LockRegion(
|
||||||
ILockBytes16* iface,
|
ILockBytes16* iface,
|
||||||
ULARGE_INTEGER libOffset, /* [in] */
|
ULARGE_INTEGER libOffset, /* [in] */
|
||||||
ULARGE_INTEGER cb, /* [in] */
|
ULARGE_INTEGER cb, /* [in] */
|
||||||
|
@ -514,7 +462,7 @@ HRESULT WINAPI HGLOBALLockBytesImpl16_LockRegion(
|
||||||
*
|
*
|
||||||
* See the documentation of ILockBytes for more info.
|
* See the documentation of ILockBytes for more info.
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_UnlockRegion(
|
HRESULT HGLOBALLockBytesImpl16_UnlockRegion(
|
||||||
ILockBytes16* iface,
|
ILockBytes16* iface,
|
||||||
ULARGE_INTEGER libOffset, /* [in] */
|
ULARGE_INTEGER libOffset, /* [in] */
|
||||||
ULARGE_INTEGER cb, /* [in] */
|
ULARGE_INTEGER cb, /* [in] */
|
||||||
|
@ -531,7 +479,7 @@ HRESULT WINAPI HGLOBALLockBytesImpl16_UnlockRegion(
|
||||||
*
|
*
|
||||||
* See the documentation of ILockBytes for more info.
|
* See the documentation of ILockBytes for more info.
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI HGLOBALLockBytesImpl16_Stat(
|
HRESULT HGLOBALLockBytesImpl16_Stat(
|
||||||
ILockBytes16*iface,
|
ILockBytes16*iface,
|
||||||
STATSTG16* pstatstg, /* [out] */
|
STATSTG16* pstatstg, /* [out] */
|
||||||
DWORD grfStatFlag) /* [in] */
|
DWORD grfStatFlag) /* [in] */
|
||||||
|
|
|
@ -60,7 +60,7 @@ struct rot_entry
|
||||||
typedef struct RunningObjectTableImpl
|
typedef struct RunningObjectTableImpl
|
||||||
{
|
{
|
||||||
const IRunningObjectTableVtbl *lpVtbl;
|
const IRunningObjectTableVtbl *lpVtbl;
|
||||||
ULONG ref;
|
LONG ref;
|
||||||
|
|
||||||
struct list rot; /* list of ROT entries */
|
struct list rot; /* list of ROT entries */
|
||||||
CRITICAL_SECTION lock;
|
CRITICAL_SECTION lock;
|
||||||
|
@ -73,7 +73,7 @@ static RunningObjectTableImpl* runningObjectTableInstance = NULL;
|
||||||
static inline HRESULT WINAPI
|
static inline HRESULT WINAPI
|
||||||
IrotRegister(DWORD *cookie)
|
IrotRegister(DWORD *cookie)
|
||||||
{
|
{
|
||||||
static DWORD last_cookie = 1;
|
static LONG last_cookie = 1;
|
||||||
*cookie = InterlockedIncrement(&last_cookie);
|
*cookie = InterlockedIncrement(&last_cookie);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
@ -82,7 +82,7 @@ IrotRegister(DWORD *cookie)
|
||||||
typedef struct EnumMonikerImpl
|
typedef struct EnumMonikerImpl
|
||||||
{
|
{
|
||||||
const IEnumMonikerVtbl *lpVtbl;
|
const IEnumMonikerVtbl *lpVtbl;
|
||||||
ULONG ref;
|
LONG ref;
|
||||||
|
|
||||||
MInterfacePointer **monikers;
|
MInterfacePointer **monikers;
|
||||||
ULONG moniker_count;
|
ULONG moniker_count;
|
||||||
|
@ -988,7 +988,7 @@ typedef struct MonikerMarshal
|
||||||
const IUnknownVtbl *lpVtbl;
|
const IUnknownVtbl *lpVtbl;
|
||||||
const IMarshalVtbl *lpVtblMarshal;
|
const IMarshalVtbl *lpVtblMarshal;
|
||||||
|
|
||||||
ULONG ref;
|
LONG ref;
|
||||||
IMoniker *moniker;
|
IMoniker *moniker;
|
||||||
} MonikerMarshal;
|
} MonikerMarshal;
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@ typedef struct
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IMalloc16_QueryInterface [COMPOBJ.500]
|
* IMalloc16_QueryInterface [COMPOBJ.500]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI IMalloc16_fnQueryInterface(IMalloc16* iface,REFIID refiid,LPVOID *obj) {
|
HRESULT IMalloc16_fnQueryInterface(IMalloc16* iface,REFIID refiid,LPVOID *obj) {
|
||||||
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
||||||
|
|
||||||
TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(refiid),obj);
|
TRACE("(%p)->QueryInterface(%s,%p)\n",This,debugstr_guid(refiid),obj);
|
||||||
|
@ -85,7 +85,7 @@ HRESULT WINAPI IMalloc16_fnQueryInterface(IMalloc16* iface,REFIID refiid,LPVOID
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IMalloc16_AddRef [COMPOBJ.501]
|
* IMalloc16_AddRef [COMPOBJ.501]
|
||||||
*/
|
*/
|
||||||
ULONG WINAPI IMalloc16_fnAddRef(IMalloc16* iface) {
|
ULONG IMalloc16_fnAddRef(IMalloc16* iface) {
|
||||||
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
||||||
TRACE("(%p)->AddRef()\n",This);
|
TRACE("(%p)->AddRef()\n",This);
|
||||||
return 1; /* cannot be freed */
|
return 1; /* cannot be freed */
|
||||||
|
@ -94,7 +94,7 @@ ULONG WINAPI IMalloc16_fnAddRef(IMalloc16* iface) {
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IMalloc16_Release [COMPOBJ.502]
|
* IMalloc16_Release [COMPOBJ.502]
|
||||||
*/
|
*/
|
||||||
ULONG WINAPI IMalloc16_fnRelease(IMalloc16* iface) {
|
ULONG IMalloc16_fnRelease(IMalloc16* iface) {
|
||||||
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
||||||
TRACE("(%p)->Release()\n",This);
|
TRACE("(%p)->Release()\n",This);
|
||||||
return 1; /* cannot be freed */
|
return 1; /* cannot be freed */
|
||||||
|
@ -103,7 +103,7 @@ ULONG WINAPI IMalloc16_fnRelease(IMalloc16* iface) {
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IMalloc16_Alloc [COMPOBJ.503]
|
* IMalloc16_Alloc [COMPOBJ.503]
|
||||||
*/
|
*/
|
||||||
SEGPTR WINAPI IMalloc16_fnAlloc(IMalloc16* iface,DWORD cb) {
|
SEGPTR IMalloc16_fnAlloc(IMalloc16* iface,DWORD cb) {
|
||||||
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
||||||
TRACE("(%p)->Alloc(%ld)\n",This,cb);
|
TRACE("(%p)->Alloc(%ld)\n",This,cb);
|
||||||
return MapLS( HeapAlloc( GetProcessHeap(), 0, cb ) );
|
return MapLS( HeapAlloc( GetProcessHeap(), 0, cb ) );
|
||||||
|
@ -112,7 +112,7 @@ SEGPTR WINAPI IMalloc16_fnAlloc(IMalloc16* iface,DWORD cb) {
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IMalloc16_Free [COMPOBJ.505]
|
* IMalloc16_Free [COMPOBJ.505]
|
||||||
*/
|
*/
|
||||||
VOID WINAPI IMalloc16_fnFree(IMalloc16* iface,SEGPTR pv)
|
VOID IMalloc16_fnFree(IMalloc16* iface,SEGPTR pv)
|
||||||
{
|
{
|
||||||
void *ptr = MapSL(pv);
|
void *ptr = MapSL(pv);
|
||||||
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
||||||
|
@ -124,7 +124,7 @@ VOID WINAPI IMalloc16_fnFree(IMalloc16* iface,SEGPTR pv)
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IMalloc16_Realloc [COMPOBJ.504]
|
* IMalloc16_Realloc [COMPOBJ.504]
|
||||||
*/
|
*/
|
||||||
SEGPTR WINAPI IMalloc16_fnRealloc(IMalloc16* iface,SEGPTR pv,DWORD cb)
|
SEGPTR IMalloc16_fnRealloc(IMalloc16* iface,SEGPTR pv,DWORD cb)
|
||||||
{
|
{
|
||||||
SEGPTR ret;
|
SEGPTR ret;
|
||||||
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
||||||
|
@ -144,7 +144,7 @@ SEGPTR WINAPI IMalloc16_fnRealloc(IMalloc16* iface,SEGPTR pv,DWORD cb)
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IMalloc16_GetSize [COMPOBJ.506]
|
* IMalloc16_GetSize [COMPOBJ.506]
|
||||||
*/
|
*/
|
||||||
DWORD WINAPI IMalloc16_fnGetSize(const IMalloc16* iface,SEGPTR pv)
|
DWORD IMalloc16_fnGetSize(const IMalloc16* iface,SEGPTR pv)
|
||||||
{
|
{
|
||||||
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
||||||
TRACE("(%p)->GetSize(%08lx)\n",This,pv);
|
TRACE("(%p)->GetSize(%08lx)\n",This,pv);
|
||||||
|
@ -154,7 +154,7 @@ DWORD WINAPI IMalloc16_fnGetSize(const IMalloc16* iface,SEGPTR pv)
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IMalloc16_DidAlloc [COMPOBJ.507]
|
* IMalloc16_DidAlloc [COMPOBJ.507]
|
||||||
*/
|
*/
|
||||||
INT16 WINAPI IMalloc16_fnDidAlloc(const IMalloc16* iface,LPVOID pv) {
|
INT16 IMalloc16_fnDidAlloc(const IMalloc16* iface,LPVOID pv) {
|
||||||
IMalloc16 *This = (IMalloc16 *)iface;
|
IMalloc16 *This = (IMalloc16 *)iface;
|
||||||
TRACE("(%p)->DidAlloc(%p)\n",This,pv);
|
TRACE("(%p)->DidAlloc(%p)\n",This,pv);
|
||||||
return (INT16)-1;
|
return (INT16)-1;
|
||||||
|
@ -163,7 +163,7 @@ INT16 WINAPI IMalloc16_fnDidAlloc(const IMalloc16* iface,LPVOID pv) {
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IMalloc16_HeapMinimize [COMPOBJ.508]
|
* IMalloc16_HeapMinimize [COMPOBJ.508]
|
||||||
*/
|
*/
|
||||||
LPVOID WINAPI IMalloc16_fnHeapMinimize(IMalloc16* iface) {
|
LPVOID IMalloc16_fnHeapMinimize(IMalloc16* iface) {
|
||||||
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
IMalloc16Impl *This = (IMalloc16Impl *)iface;
|
||||||
TRACE("(%p)->HeapMinimize()\n",This);
|
TRACE("(%p)->HeapMinimize()\n",This);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -370,7 +370,7 @@ HRESULT WINAPI ProgIDFromCLSID16(
|
||||||
|
|
||||||
if (ret == S_OK)
|
if (ret == S_OK)
|
||||||
{
|
{
|
||||||
DWORD buf2len;
|
LONG buf2len;
|
||||||
char *buf2 = HeapAlloc(GetProcessHeap(), 0, 255);
|
char *buf2 = HeapAlloc(GetProcessHeap(), 0, 255);
|
||||||
buf2len = 255;
|
buf2len = 255;
|
||||||
if (RegQueryValueA(xhkey, NULL, buf2, &buf2len))
|
if (RegQueryValueA(xhkey, NULL, buf2, &buf2len))
|
||||||
|
@ -506,3 +506,18 @@ BOOL WINAPI COMPOBJ_DllEntryPoint(DWORD Reason, HINSTANCE16 hInst, WORD ds, WORD
|
||||||
TRACE("(%08lx, %04x, %04x, %04x, %08lx, %04x)\n", Reason, hInst, ds, HeapSize, res1, res2);
|
TRACE("(%08lx, %04x, %04x, %04x, %08lx, %04x)\n", Reason, hInst, ds, HeapSize, res1, res2);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
* CoMemAlloc [COMPOBJ.151]
|
||||||
|
*/
|
||||||
|
SEGPTR WINAPI CoMemAlloc(DWORD size, DWORD dwMemContext, DWORD x) {
|
||||||
|
HRESULT hres;
|
||||||
|
SEGPTR segptr;
|
||||||
|
|
||||||
|
/* FIXME: check context handling */
|
||||||
|
TRACE("(%ld, 0x%08lx, 0x%08lx)\n", size, dwMemContext, x);
|
||||||
|
hres = _xmalloc16(size, &segptr);
|
||||||
|
if (hres != S_OK)
|
||||||
|
return (SEGPTR)0;
|
||||||
|
return segptr;
|
||||||
|
}
|
||||||
|
|
|
@ -294,8 +294,8 @@ void WINAPI OleUninitialize(void)
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* OleInitializeWOW [OLE32.@]
|
* OleInitializeWOW [OLE32.@]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI OleInitializeWOW(DWORD x) {
|
HRESULT WINAPI OleInitializeWOW(DWORD x, DWORD y) {
|
||||||
FIXME("(0x%08lx),stub!\n",x);
|
FIXME("(0x%08lx, 0x%08lx),stub!\n",x, y);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -394,7 +394,7 @@ HRESULT WINAPI OleRegGetUserType(
|
||||||
DWORD cbData;
|
DWORD cbData;
|
||||||
HKEY clsidKey;
|
HKEY clsidKey;
|
||||||
LONG hres;
|
LONG hres;
|
||||||
LPBYTE buffer;
|
LPSTR buffer;
|
||||||
HRESULT retVal;
|
HRESULT retVal;
|
||||||
/*
|
/*
|
||||||
* Initialize the out parameter.
|
* Initialize the out parameter.
|
||||||
|
@ -464,7 +464,7 @@ HRESULT WINAPI OleRegGetUserType(
|
||||||
"",
|
"",
|
||||||
NULL,
|
NULL,
|
||||||
&dwKeyType,
|
&dwKeyType,
|
||||||
buffer,
|
(LPBYTE) buffer,
|
||||||
&cbData);
|
&cbData);
|
||||||
|
|
||||||
RegCloseKey(clsidKey);
|
RegCloseKey(clsidKey);
|
||||||
|
|
|
@ -1,158 +1,158 @@
|
||||||
1 pascal OleBuildVersion() OleBuildVersion
|
1 pascal OleBuildVersion() OleBuildVersion
|
||||||
2 pascal OleInitialize(ptr) OleInitialize
|
2 pascal OleInitialize(ptr) OleInitialize
|
||||||
3 pascal OleUninitialize() OleUninitialize
|
3 pascal OleUninitialize() OleUninitialize
|
||||||
4 pascal DllGetClassObject(ptr ptr ptr) DllGetClassObject16
|
4 pascal DllGetClassObject(ptr ptr ptr) DllGetClassObject16
|
||||||
#5 WEP
|
#5 WEP
|
||||||
6 stub OLEQUERYLINKFROMDATA
|
6 stub OLEQUERYLINKFROMDATA
|
||||||
7 stub OLEQUERYCREATEFROMDATA
|
7 stub OLEQUERYCREATEFROMDATA
|
||||||
8 stub OLECREATEFROMDATA
|
8 stub OLECREATEFROMDATA
|
||||||
9 stub OLECREATELINKFROMDATA
|
9 stub OLECREATELINKFROMDATA
|
||||||
10 stub OLECREATE
|
10 stub OLECREATE
|
||||||
11 stub OLECREATELINK
|
11 stub OLECREATELINK
|
||||||
12 stub OLELOAD
|
12 stub OLELOAD
|
||||||
13 stub OLESAVE
|
13 stub OLESAVE
|
||||||
14 stub OLERUN
|
14 stub OLERUN
|
||||||
#15 ___EXPORTEDSTUB
|
#15 ___EXPORTEDSTUB
|
||||||
16 stub OLEISRUNNING
|
16 stub OLEISRUNNING
|
||||||
17 stub OLELOCKRUNNING
|
17 stub OLELOCKRUNNING
|
||||||
18 stub READCLASSSTG
|
18 stub READCLASSSTG
|
||||||
19 stub WRITECLASSSTG
|
19 stub WRITECLASSSTG
|
||||||
20 stub READCLASSSTM
|
20 stub READCLASSSTM
|
||||||
21 stub WRITECLASSSTM
|
21 stub WRITECLASSSTM
|
||||||
22 stub BINDMONIKER
|
22 stub BINDMONIKER
|
||||||
23 stub MKPARSEDISPLAYNAME
|
23 stub MKPARSEDISPLAYNAME
|
||||||
24 stub OLESAVETOSTREAM
|
24 stub OLESAVETOSTREAM
|
||||||
25 stub OLELOADFROMSTREAM
|
25 stub OLELOADFROMSTREAM
|
||||||
26 stub CREATEBINDCTX
|
26 stub CREATEBINDCTX
|
||||||
27 pascal CreateItemMoniker(str str ptr) CreateItemMoniker16
|
27 pascal CreateItemMoniker(str str ptr) CreateItemMoniker16
|
||||||
28 pascal CreateFileMoniker(str ptr) CreateFileMoniker16
|
28 pascal CreateFileMoniker(str ptr) CreateFileMoniker16
|
||||||
29 stub CREATEGENERICCOMPOSITE
|
29 stub CREATEGENERICCOMPOSITE
|
||||||
30 pascal GetRunningObjectTable(long ptr) GetRunningObjectTable16
|
30 pascal GetRunningObjectTable(long ptr) GetRunningObjectTable16
|
||||||
31 stub OLEGETMALLOC
|
31 stub OLEGETMALLOC
|
||||||
32 stub RELEASESTGMEDIUM
|
32 stub RELEASESTGMEDIUM
|
||||||
33 stub READSTRINGSTREAM
|
33 stub READSTRINGSTREAM
|
||||||
34 stub WRITESTRINGSTREAM
|
34 stub WRITESTRINGSTREAM
|
||||||
35 pascal RegisterDragDrop(word segptr) RegisterDragDrop16
|
35 pascal RegisterDragDrop(word segptr) RegisterDragDrop16
|
||||||
36 pascal RevokeDragDrop(word) RevokeDragDrop16
|
36 pascal RevokeDragDrop(word) RevokeDragDrop16
|
||||||
37 stub DODRAGDROP
|
37 stub DODRAGDROP
|
||||||
38 stub CREATEOLEADVISEHOLDER
|
38 stub CREATEOLEADVISEHOLDER
|
||||||
39 stub CREATEDATAADVISEHOLDER
|
39 stub CREATEDATAADVISEHOLDER
|
||||||
40 stub OLECREATEMENUDESCRIPTOR
|
40 stub OLECREATEMENUDESCRIPTOR
|
||||||
41 stub OLESETMENUDESCRIPTOR
|
41 pascal OleSetMenuDescriptor(word word word ptr ptr) OleSetMenuDescriptor16
|
||||||
42 stub OLEDESTROYMENUDESCRIPTOR
|
42 stub OLEDESTROYMENUDESCRIPTOR
|
||||||
43 stub OPENORCREATESTREAM
|
43 stub OPENORCREATESTREAM
|
||||||
44 stub CREATEANTIMONIKER
|
44 stub CREATEANTIMONIKER
|
||||||
45 stub CREATEPOINTERMONIKER
|
45 stub CREATEPOINTERMONIKER
|
||||||
46 stub MONIKERRELATIVEPATHTO
|
46 stub MONIKERRELATIVEPATHTO
|
||||||
47 stub MONIKERCOMMONPREFIXWITH
|
47 stub MONIKERCOMMONPREFIXWITH
|
||||||
48 stub ISACCELERATOR
|
48 stub ISACCELERATOR
|
||||||
49 pascal OleSetClipboard(ptr) OleSetClipboard16
|
49 pascal OleSetClipboard(ptr) OleSetClipboard16
|
||||||
50 pascal OleGetClipboard(ptr) OleGetClipboard16
|
50 pascal OleGetClipboard(ptr) OleGetClipboard16
|
||||||
51 stub OLEDUPLICATEDATA
|
51 stub OLEDUPLICATEDATA
|
||||||
52 stub OLEGETICONOFFILE
|
52 stub OLEGETICONOFFILE
|
||||||
53 stub OLEGETICONOFCLASS
|
53 stub OLEGETICONOFCLASS
|
||||||
54 pascal CreateILockBytesOnHGlobal(word word ptr) CreateILockBytesOnHGlobal16
|
54 pascal CreateILockBytesOnHGlobal(word word ptr) CreateILockBytesOnHGlobal16
|
||||||
55 stub GETHGLOBALFROMILOCKBYTES
|
55 stub GETHGLOBALFROMILOCKBYTES
|
||||||
56 pascal -ret16 OleMetaFilePictFromIconAndLabel(word str str word) OleMetaFilePictFromIconAndLabel16
|
56 pascal -ret16 OleMetaFilePictFromIconAndLabel(word str str word) OleMetaFilePictFromIconAndLabel16
|
||||||
57 stub GETCLASSFILE
|
57 stub GETCLASSFILE
|
||||||
58 stub OLEDRAW
|
58 stub OLEDRAW
|
||||||
59 stub OLECREATEDEFAULTHANDLER
|
59 stub OLECREATEDEFAULTHANDLER
|
||||||
60 stub OLECREATEEMBEDDINGHELPER
|
60 stub OLECREATEEMBEDDINGHELPER
|
||||||
61 stub OLECONVERTISTORAGETOOLESTREAMEX
|
61 stub OLECONVERTISTORAGETOOLESTREAMEX
|
||||||
62 stub OLECONVERTOLESTREAMTOISTORAGEEX
|
62 stub OLECONVERTOLESTREAMTOISTORAGEEX
|
||||||
63 stub SETDOCUMENTBITSTG
|
63 stub SETDOCUMENTBITSTG
|
||||||
64 stub GETDOCUMENTBITSTG
|
64 stub GETDOCUMENTBITSTG
|
||||||
65 stub WRITEOLESTG
|
65 stub WRITEOLESTG
|
||||||
66 stub READOLESTG
|
66 stub READOLESTG
|
||||||
67 stub OLECREATEFROMFILE
|
67 stub OLECREATEFROMFILE
|
||||||
68 stub OLECREATELINKTOFILE
|
68 stub OLECREATELINKTOFILE
|
||||||
69 stub CREATEDATACACHE
|
69 stub CREATEDATACACHE
|
||||||
70 stub OLECONVERTISTORAGETOOLESTREAM
|
70 stub OLECONVERTISTORAGETOOLESTREAM
|
||||||
71 stub OLECONVERTOLESTREAMTOISTORAGE
|
71 stub OLECONVERTOLESTREAMTOISTORAGE
|
||||||
74 stub READFMTUSERTYPESTG
|
74 stub READFMTUSERTYPESTG
|
||||||
75 stub WRITEFMTUSERTYPESTG
|
75 stub WRITEFMTUSERTYPESTG
|
||||||
76 pascal -ret16 OleFlushClipboard() OleFlushClipboard16
|
76 pascal -ret16 OleFlushClipboard() OleFlushClipboard16
|
||||||
77 stub OLEISCURRENTCLIPBOARD
|
77 stub OLEISCURRENTCLIPBOARD
|
||||||
78 stub OLETRANSLATEACCELERATOR
|
78 stub OLETRANSLATEACCELERATOR
|
||||||
79 stub OLEDOAUTOCONVERT
|
79 stub OLEDOAUTOCONVERT
|
||||||
80 stub OLEGETAUTOCONVERT
|
80 stub OLEGETAUTOCONVERT
|
||||||
81 stub OLESETAUTOCONVERT
|
81 stub OLESETAUTOCONVERT
|
||||||
82 stub GETCONVERTSTG
|
82 stub GETCONVERTSTG
|
||||||
83 stub SETCONVERTSTG
|
83 stub SETCONVERTSTG
|
||||||
84 stub CREATESTREAMONHGLOBAL
|
84 stub CREATESTREAMONHGLOBAL
|
||||||
85 stub GETHGLOBALFROMSTREAM
|
85 stub GETHGLOBALFROMSTREAM
|
||||||
86 stub OLESETCONTAINEDOBJECT
|
86 stub OLESETCONTAINEDOBJECT
|
||||||
87 stub OLENOTEOBJECTVISIBLE
|
87 stub OLENOTEOBJECTVISIBLE
|
||||||
88 stub OLECREATESTATICFROMDATA
|
88 stub OLECREATESTATICFROMDATA
|
||||||
89 stub OLEREGGETUSERTYPE
|
89 stub OLEREGGETUSERTYPE
|
||||||
90 stub OLEREGGETMISCSTATUS
|
90 stub OLEREGGETMISCSTATUS
|
||||||
91 stub OLEREGENUMFORMATETC
|
91 stub OLEREGENUMFORMATETC
|
||||||
92 stub OLEREGENUMVERBS
|
92 stub OLEREGENUMVERBS
|
||||||
93 stub OLEGETENUMFORMATETC
|
93 stub OLEGETENUMFORMATETC
|
||||||
100 stub MAKEDEBUGSTREAM
|
100 stub MAKEDEBUGSTREAM
|
||||||
104 stub DBGLOGOPEN
|
104 stub DBGLOGOPEN
|
||||||
105 stub DBGLOGCLOSE
|
105 stub DBGLOGCLOSE
|
||||||
106 stub DBGLOGOUTPUTDEBUGSTRING
|
106 stub DBGLOGOUTPUTDEBUGSTRING
|
||||||
107 stub DBGLOGWRITE
|
107 stub DBGLOGWRITE
|
||||||
108 stub DBGLOGTIMESTAMP
|
108 stub DBGLOGTIMESTAMP
|
||||||
109 stub DBGLOGWRITEBANNER
|
109 stub DBGLOGWRITEBANNER
|
||||||
110 stub DBGDUMPOBJECT
|
110 stub DBGDUMPOBJECT
|
||||||
111 stub DBGISOBJECTVALID
|
111 stub DBGISOBJECTVALID
|
||||||
112 stub DUMPALLOBJECTS
|
112 stub DUMPALLOBJECTS
|
||||||
113 stub VALIDATEALLOBJECTS
|
113 stub VALIDATEALLOBJECTS
|
||||||
114 stub DBGDUMPCLASSNAME
|
114 stub DBGDUMPCLASSNAME
|
||||||
115 stub DBGDUMPEXTERNALOBJECT
|
115 stub DBGDUMPEXTERNALOBJECT
|
||||||
120 stub _IID_IENUMUNKNOWN
|
120 stub _IID_IENUMUNKNOWN
|
||||||
121 stub _IID_IENUMSTRING
|
121 stub _IID_IENUMSTRING
|
||||||
122 stub _IID_IENUMMONIKER
|
122 stub _IID_IENUMMONIKER
|
||||||
123 stub _IID_IENUMFORMATETC
|
123 stub _IID_IENUMFORMATETC
|
||||||
124 stub _IID_IENUMOLEVERB
|
124 stub _IID_IENUMOLEVERB
|
||||||
125 stub _IID_IENUMSTATDATA
|
125 stub _IID_IENUMSTATDATA
|
||||||
126 stub _IID_IENUMGENERIC
|
126 stub _IID_IENUMGENERIC
|
||||||
127 stub _IID_IENUMHOLDER
|
127 stub _IID_IENUMHOLDER
|
||||||
128 stub _IID_IENUMCALLBACK
|
128 stub _IID_IENUMCALLBACK
|
||||||
129 stub _IID_IPERSISTSTREAM
|
129 stub _IID_IPERSISTSTREAM
|
||||||
130 stub _IID_IPERSISTSTORAGE
|
130 stub _IID_IPERSISTSTORAGE
|
||||||
131 stub _IID_IPERSISTFILE
|
131 stub _IID_IPERSISTFILE
|
||||||
132 stub _IID_IPERSIST
|
132 stub _IID_IPERSIST
|
||||||
133 stub _IID_IVIEWOBJECT
|
133 stub _IID_IVIEWOBJECT
|
||||||
134 stub _IID_IDATAOBJECT
|
134 stub _IID_IDATAOBJECT
|
||||||
135 stub _IID_IADVISESINK
|
135 stub _IID_IADVISESINK
|
||||||
136 stub _IID_IDATAADVISEHOLDER
|
136 stub _IID_IDATAADVISEHOLDER
|
||||||
137 stub _IID_IOLEADVISEHOLDER
|
137 stub _IID_IOLEADVISEHOLDER
|
||||||
138 stub _IID_IOLEOBJECT
|
138 stub _IID_IOLEOBJECT
|
||||||
139 stub _IID_IOLEINPLACEOBJECT
|
139 stub _IID_IOLEINPLACEOBJECT
|
||||||
140 stub _IID_IOLEWINDOW
|
140 stub _IID_IOLEWINDOW
|
||||||
141 stub _IID_IOLEINPLACEUIWINDOW
|
141 stub _IID_IOLEINPLACEUIWINDOW
|
||||||
142 stub _IID_IOLEINPLACEFRAME
|
142 stub _IID_IOLEINPLACEFRAME
|
||||||
143 stub _IID_IOLEINPLACEACTIVEOBJECT
|
143 stub _IID_IOLEINPLACEACTIVEOBJECT
|
||||||
144 stub _IID_IOLECLIENTSITE
|
144 stub _IID_IOLECLIENTSITE
|
||||||
145 stub _IID_IOLEINPLACESITE
|
145 stub _IID_IOLEINPLACESITE
|
||||||
146 stub _IID_IPARSEDISPLAYNAME
|
146 stub _IID_IPARSEDISPLAYNAME
|
||||||
147 stub _IID_IOLECONTAINER
|
147 stub _IID_IOLECONTAINER
|
||||||
148 stub _IID_IOLEITEMCONTAINER
|
148 stub _IID_IOLEITEMCONTAINER
|
||||||
149 stub _IID_IOLELINK
|
149 stub _IID_IOLELINK
|
||||||
150 stub _IID_IOLECACHE
|
150 stub _IID_IOLECACHE
|
||||||
151 stub _IID_IOLEMANAGER
|
151 stub _IID_IOLEMANAGER
|
||||||
152 stub _IID_IOLEPRESOBJ
|
152 stub _IID_IOLEPRESOBJ
|
||||||
153 stub _IID_IDROPSOURCE
|
153 stub _IID_IDROPSOURCE
|
||||||
154 stub _IID_IDROPTARGET
|
154 stub _IID_IDROPTARGET
|
||||||
155 stub _IID_IDEBUG
|
155 stub _IID_IDEBUG
|
||||||
156 stub _IID_IDEBUGSTREAM
|
156 stub _IID_IDEBUGSTREAM
|
||||||
157 stub _IID_IADVISESINK2
|
157 stub _IID_IADVISESINK2
|
||||||
158 stub _IID_IVIEWOBJECT2
|
158 stub _IID_IVIEWOBJECT2
|
||||||
159 stub _IID_IOLECACHE2
|
159 stub _IID_IOLECACHE2
|
||||||
160 stub _IID_IOLECACHECONTROL
|
160 stub _IID_IOLECACHECONTROL
|
||||||
161 stub _IID_IRUNNABLEOBJECT
|
161 stub _IID_IRUNNABLEOBJECT
|
||||||
|
|
||||||
# WINE MemLockBytes implementation.
|
# WINE MemLockBytes implementation.
|
||||||
500 cdecl HGLOBALLockBytesImpl16_QueryInterface(segptr ptr ptr) HGLOBALLockBytesImpl16_QueryInterface
|
500 cdecl HGLOBALLockBytesImpl16_QueryInterface(segptr ptr ptr) HGLOBALLockBytesImpl16_QueryInterface
|
||||||
501 cdecl HGLOBALLockBytesImpl16_AddRef(ptr) HGLOBALLockBytesImpl16_AddRef
|
501 cdecl HGLOBALLockBytesImpl16_AddRef(ptr) HGLOBALLockBytesImpl16_AddRef
|
||||||
502 cdecl HGLOBALLockBytesImpl16_Release(ptr) HGLOBALLockBytesImpl16_Release
|
502 cdecl HGLOBALLockBytesImpl16_Release(ptr) HGLOBALLockBytesImpl16_Release
|
||||||
503 cdecl HGLOBALLockBytesImpl16_ReadAt(ptr long long ptr long ptr) HGLOBALLockBytesImpl16_ReadAt
|
503 cdecl HGLOBALLockBytesImpl16_ReadAt(ptr long long ptr long ptr) HGLOBALLockBytesImpl16_ReadAt
|
||||||
504 cdecl HGLOBALLockBytesImpl16_WriteAt(ptr long long ptr long ptr) HGLOBALLockBytesImpl16_WriteAt
|
504 cdecl HGLOBALLockBytesImpl16_WriteAt(ptr long long ptr long ptr) HGLOBALLockBytesImpl16_WriteAt
|
||||||
505 cdecl HGLOBALLockBytesImpl16_Flush(ptr) HGLOBALLockBytesImpl16_Flush
|
505 cdecl HGLOBALLockBytesImpl16_Flush(ptr) HGLOBALLockBytesImpl16_Flush
|
||||||
506 cdecl HGLOBALLockBytesImpl16_SetSize(ptr long long) HGLOBALLockBytesImpl16_SetSize
|
506 cdecl HGLOBALLockBytesImpl16_SetSize(ptr long long) HGLOBALLockBytesImpl16_SetSize
|
||||||
507 cdecl HGLOBALLockBytesImpl16_LockRegion(ptr long long long long long) HGLOBALLockBytesImpl16_LockRegion
|
507 cdecl HGLOBALLockBytesImpl16_LockRegion(ptr long long long long long) HGLOBALLockBytesImpl16_LockRegion
|
||||||
508 cdecl HGLOBALLockBytesImpl16_UnlockRegion(ptr long long long long long) HGLOBALLockBytesImpl16_UnlockRegion
|
508 cdecl HGLOBALLockBytesImpl16_UnlockRegion(ptr long long long long long) HGLOBALLockBytesImpl16_UnlockRegion
|
||||||
509 cdecl HGLOBALLockBytesImpl16_Stat(ptr ptr long) HGLOBALLockBytesImpl16_Stat
|
509 cdecl HGLOBALLockBytesImpl16_Stat(ptr ptr long) HGLOBALLockBytesImpl16_Stat
|
||||||
|
|
|
@ -152,3 +152,43 @@ HRESULT WINAPI CreateFileMoniker16(LPCOLESTR16 lpszPathName,LPMONIKER* ppmk)
|
||||||
FIXME("(%s,%p),stub!\n",lpszPathName,ppmk);
|
FIXME("(%s,%p),stub!\n",lpszPathName,ppmk);
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* OleSetMenuDescriptor (OLE2.41)
|
||||||
|
*/
|
||||||
|
HRESULT WINAPI OleSetMenuDescriptor16(
|
||||||
|
HOLEMENU hOleMenu, /* FIXME: HOLEMENU16 likely */
|
||||||
|
HWND16 hwndFrame,
|
||||||
|
HWND16 hwndActiveObject,
|
||||||
|
LPOLEINPLACEFRAME lpFrame,
|
||||||
|
LPOLEINPLACEACTIVEOBJECT lpActiveObject)
|
||||||
|
{
|
||||||
|
FIXME("(%p, %x, %x, %p, %p), stub!\n", hOleMenu, hwndFrame, hwndActiveObject, lpFrame, lpActiveObject);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* IsValidInterface [COMPOBJ.23]
|
||||||
|
*
|
||||||
|
* Determines whether a pointer is a valid interface.
|
||||||
|
*
|
||||||
|
* PARAMS
|
||||||
|
* punk [I] Interface to be tested.
|
||||||
|
*
|
||||||
|
* RETURNS
|
||||||
|
* TRUE, if the passed pointer is a valid interface, or FALSE otherwise.
|
||||||
|
*/
|
||||||
|
BOOL WINAPI IsValidInterface16(SEGPTR punk)
|
||||||
|
{
|
||||||
|
DWORD **ptr;
|
||||||
|
|
||||||
|
if (IsBadReadPtr16(punk,4))
|
||||||
|
return FALSE;
|
||||||
|
ptr = MapSL(punk);
|
||||||
|
if (IsBadReadPtr16((SEGPTR)ptr[0],4)) /* check vtable ptr */
|
||||||
|
return FALSE;
|
||||||
|
ptr = MapSL((SEGPTR)ptr[0]); /* ptr to first method */
|
||||||
|
if (IsBadReadPtr16((SEGPTR)ptr[0],2))
|
||||||
|
return FALSE;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
1 stub GETFILTERINFO
|
1 stub GETFILTERINFO
|
||||||
2 stub IMPORTGR
|
2 stub IMPORTGR
|
||||||
3 stub GETFILTERPREF
|
3 stub GETFILTERPREF
|
||||||
4 stub IMPORTEMBEDDEDGR
|
4 stub IMPORTEMBEDDEDGR
|
||||||
5 stub QD2GDI
|
5 stub QD2GDI
|
||||||
6 stub STATUSPROC
|
6 stub STATUSPROC
|
||||||
7 stub ENUMFONTFUNC
|
7 stub ENUMFONTFUNC
|
||||||
#8 WEP
|
#8 WEP
|
||||||
#9 ___EXPORTEDSTUB
|
#9 ___EXPORTEDSTUB
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
1 pascal GetUserDefaultLCID() GetUserDefaultLCID16
|
1 pascal GetUserDefaultLCID() GetUserDefaultLCID16
|
||||||
2 pascal GetSystemDefaultLCID() GetSystemDefaultLCID16
|
2 pascal GetSystemDefaultLCID() GetSystemDefaultLCID16
|
||||||
3 pascal -ret16 GetUserDefaultLangID() GetUserDefaultLangID16
|
3 pascal -ret16 GetUserDefaultLangID() GetUserDefaultLangID16
|
||||||
4 pascal -ret16 GetSystemDefaultLangID() GetSystemDefaultLangID16
|
4 pascal -ret16 GetSystemDefaultLangID() GetSystemDefaultLangID16
|
||||||
5 pascal GetLocaleInfoA(long long ptr word) GetLocaleInfo16
|
5 pascal GetLocaleInfoA(long long ptr word) GetLocaleInfo16
|
||||||
6 pascal -ret16 LCMapStringA(word long ptr word ptr word) LCMapString16
|
6 pascal -ret16 LCMapStringA(word long ptr word ptr word) LCMapString16
|
||||||
7 pascal -ret16 GetStringTypeA(long long str word ptr) GetStringType16
|
7 pascal -ret16 GetStringTypeA(long long str word ptr) GetStringType16
|
||||||
8 pascal -ret16 CompareStringA(long long str word str word) CompareString16
|
8 pascal -ret16 CompareStringA(long long str word str word) CompareString16
|
||||||
9 pascal -ret16 RegisterNLSInfoChanged(ptr) RegisterNLSInfoChanged16
|
9 pascal -ret16 RegisterNLSInfoChanged(ptr) RegisterNLSInfoChanged16
|
||||||
#10 stub WEP
|
#10 stub WEP
|
||||||
11 stub LIBMAIN
|
11 stub LIBMAIN
|
||||||
12 stub NOTIFYWINDOWPROC
|
12 stub NOTIFYWINDOWPROC
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
1 stub DLLGETCLASSOBJECT
|
1 stub DLLGETCLASSOBJECT
|
||||||
#2 WEP
|
#2 WEP
|
||||||
#3 ___EXPORTEDSTUB
|
#3 ___EXPORTEDSTUB
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#1 stub WEP
|
#1 stub WEP
|
||||||
2 stub ROT16_ISRUNNING16
|
2 stub ROT16_ISRUNNING16
|
||||||
3 stub ISWIN32SHANDLE
|
3 stub ISWIN32SHANDLE
|
||||||
4 stub ___EXPORTEDSTUB
|
4 stub ___EXPORTEDSTUB
|
||||||
5 stub COTHKCOMMON
|
5 stub COTHKCOMMON
|
||||||
6 stub ROT16_GETTIMEOFLASTCHANGE16
|
6 stub ROT16_GETTIMEOFLASTCHANGE16
|
||||||
7 stub ROT16_GETOBJECT16
|
7 stub ROT16_GETOBJECT16
|
||||||
|
|
|
@ -1,269 +1,269 @@
|
||||||
@ stdcall BindMoniker(ptr long ptr ptr)
|
@ stdcall BindMoniker(ptr long ptr ptr)
|
||||||
@ stub CLIPFORMAT_UserFree
|
@ stub CLIPFORMAT_UserFree
|
||||||
@ stub CLIPFORMAT_UserMarshal
|
@ stub CLIPFORMAT_UserMarshal
|
||||||
@ stub CLIPFORMAT_UserSize
|
@ stub CLIPFORMAT_UserSize
|
||||||
@ stub CLIPFORMAT_UserUnmarshal
|
@ stub CLIPFORMAT_UserUnmarshal
|
||||||
@ stdcall CLSIDFromProgID(wstr ptr)
|
@ stdcall CLSIDFromProgID(wstr ptr)
|
||||||
@ stdcall CLSIDFromString(wstr ptr)
|
@ stdcall CLSIDFromString(wstr ptr)
|
||||||
@ stdcall CoAddRefServerProcess()
|
@ stdcall CoAddRefServerProcess()
|
||||||
@ stdcall CoBuildVersion()
|
@ stdcall CoBuildVersion()
|
||||||
@ stdcall CoCopyProxy(ptr ptr)
|
@ stdcall CoCopyProxy(ptr ptr)
|
||||||
@ stdcall CoCreateFreeThreadedMarshaler(ptr ptr)
|
@ stdcall CoCreateFreeThreadedMarshaler(ptr ptr)
|
||||||
@ stdcall CoCreateGuid(ptr)
|
@ stdcall CoCreateGuid(ptr)
|
||||||
@ stdcall CoCreateInstance(ptr ptr long ptr ptr)
|
@ stdcall CoCreateInstance(ptr ptr long ptr ptr)
|
||||||
@ stdcall CoCreateInstanceEx(ptr ptr long ptr long ptr)
|
@ stdcall CoCreateInstanceEx(ptr ptr long ptr long ptr)
|
||||||
@ stdcall CoDisconnectObject(ptr long)
|
@ stdcall CoDisconnectObject(ptr long)
|
||||||
@ stdcall CoDosDateTimeToFileTime(long long ptr) kernel32.DosDateTimeToFileTime
|
@ stdcall CoDosDateTimeToFileTime(long long ptr) kernel32.DosDateTimeToFileTime
|
||||||
@ stdcall CoFileTimeNow(ptr)
|
@ stdcall CoFileTimeNow(ptr)
|
||||||
@ stdcall CoFileTimeToDosDateTime(ptr ptr ptr) kernel32.FileTimeToDosDateTime
|
@ stdcall CoFileTimeToDosDateTime(ptr ptr ptr) kernel32.FileTimeToDosDateTime
|
||||||
@ stdcall CoFreeAllLibraries()
|
@ stdcall CoFreeAllLibraries()
|
||||||
@ stdcall CoFreeLibrary(long)
|
@ stdcall CoFreeLibrary(long)
|
||||||
@ stdcall CoFreeUnusedLibraries()
|
@ stdcall CoFreeUnusedLibraries()
|
||||||
@ stub CoGetCallContext #@ stdcall (ptr ptr) return 0,ERR_NOTIMPLEMENTED
|
@ stub CoGetCallContext #@ stdcall (ptr ptr) return 0,ERR_NOTIMPLEMENTED
|
||||||
@ stub CoGetCallerTID
|
@ stub CoGetCallerTID
|
||||||
@ stdcall CoGetClassObject(ptr long ptr ptr ptr)
|
@ stdcall CoGetClassObject(ptr long ptr ptr ptr)
|
||||||
@ stub CoGetCurrentLogicalThreadId
|
@ stub CoGetCurrentLogicalThreadId
|
||||||
@ stdcall CoGetCurrentProcess()
|
@ stdcall CoGetCurrentProcess()
|
||||||
@ stub CoGetInstanceFromFile #@ stdcall (ptr ptr ptr long wstr long ptr) return 0,ERR_NOTIMPLEMENTED
|
@ stub CoGetInstanceFromFile #@ stdcall (ptr ptr ptr long wstr long ptr) return 0,ERR_NOTIMPLEMENTED
|
||||||
@ stub CoGetInstanceFromIStorage #@ stdcall (ptr ptr ptr long ptr long ptr) return 0,ERR_NOTIMPLEMENTED
|
@ stub CoGetInstanceFromIStorage #@ stdcall (ptr ptr ptr long ptr long ptr) return 0,ERR_NOTIMPLEMENTED
|
||||||
@ stdcall CoGetInterfaceAndReleaseStream(ptr ptr ptr)
|
@ stdcall CoGetInterfaceAndReleaseStream(ptr ptr ptr)
|
||||||
@ stdcall CoGetMalloc(long ptr)
|
@ stdcall CoGetMalloc(long ptr)
|
||||||
@ stdcall CoGetMarshalSizeMax(ptr ptr ptr long ptr long)
|
@ stdcall CoGetMarshalSizeMax(ptr ptr ptr long ptr long)
|
||||||
@ stub CoGetObject
|
@ stub CoGetObject
|
||||||
@ stdcall CoGetPSClsid(ptr ptr)
|
@ stdcall CoGetPSClsid(ptr ptr)
|
||||||
@ stdcall CoGetStandardMarshal(ptr ptr long ptr long ptr)
|
@ stdcall CoGetStandardMarshal(ptr ptr long ptr long ptr)
|
||||||
@ stdcall CoGetState(ptr)
|
@ stdcall CoGetState(ptr)
|
||||||
@ stub CoGetTIDFromIPID
|
@ stub CoGetTIDFromIPID
|
||||||
@ stdcall CoGetTreatAsClass(ptr ptr)
|
@ stdcall CoGetTreatAsClass(ptr ptr)
|
||||||
@ stub CoImpersonateClient
|
@ stub CoImpersonateClient
|
||||||
@ stdcall CoInitialize(ptr)
|
@ stdcall CoInitialize(ptr)
|
||||||
@ stdcall CoInitializeEx(ptr long)
|
@ stdcall CoInitializeEx(ptr long)
|
||||||
@ stdcall CoInitializeSecurity(ptr long ptr ptr long long ptr long ptr)
|
@ stdcall CoInitializeSecurity(ptr long ptr ptr long long ptr long ptr)
|
||||||
@ stdcall CoInitializeWOW(long long)
|
@ stdcall CoInitializeWOW(long long)
|
||||||
@ stdcall CoIsHandlerConnected(ptr)
|
@ stdcall CoIsHandlerConnected(ptr)
|
||||||
@ stdcall CoIsOle1Class (ptr)
|
@ stdcall CoIsOle1Class (ptr)
|
||||||
@ stdcall CoLoadLibrary(wstr long)
|
@ stdcall CoLoadLibrary(wstr long)
|
||||||
@ stdcall CoLockObjectExternal(ptr long long)
|
@ stdcall CoLockObjectExternal(ptr long long)
|
||||||
@ stdcall CoMarshalHresult(ptr long)
|
@ stdcall CoMarshalHresult(ptr long)
|
||||||
@ stdcall CoMarshalInterThreadInterfaceInStream(ptr ptr ptr)
|
@ stdcall CoMarshalInterThreadInterfaceInStream(ptr ptr ptr)
|
||||||
@ stdcall CoMarshalInterface(ptr ptr ptr long ptr long)
|
@ stdcall CoMarshalInterface(ptr ptr ptr long ptr long)
|
||||||
@ stub CoQueryAuthenticationServices
|
@ stub CoQueryAuthenticationServices
|
||||||
@ stub CoQueryClientBlanket
|
@ stub CoQueryClientBlanket
|
||||||
@ stdcall CoQueryProxyBlanket(ptr ptr ptr ptr ptr ptr ptr ptr)
|
@ stdcall CoQueryProxyBlanket(ptr ptr ptr ptr ptr ptr ptr ptr)
|
||||||
@ stub CoQueryReleaseObject
|
@ stub CoQueryReleaseObject
|
||||||
@ stub CoRegisterChannelHook
|
@ stub CoRegisterChannelHook
|
||||||
@ stdcall CoRegisterClassObject(ptr ptr long long ptr)
|
@ stdcall CoRegisterClassObject(ptr ptr long long ptr)
|
||||||
@ stdcall CoRegisterMallocSpy (ptr)
|
@ stdcall CoRegisterMallocSpy (ptr)
|
||||||
@ stdcall CoRegisterMessageFilter(ptr ptr)
|
@ stdcall CoRegisterMessageFilter(ptr ptr)
|
||||||
@ stub CoRegisterPSClsid #@ stdcall (ptr ptr) return 0,ERR_NOTIMPLEMENTED
|
@ stub CoRegisterPSClsid #@ stdcall (ptr ptr) return 0,ERR_NOTIMPLEMENTED
|
||||||
@ stub CoRegisterSurrogate
|
@ stub CoRegisterSurrogate
|
||||||
@ stdcall CoReleaseMarshalData(ptr)
|
@ stdcall CoReleaseMarshalData(ptr)
|
||||||
@ stdcall CoReleaseServerProcess()
|
@ stdcall CoReleaseServerProcess()
|
||||||
@ stdcall CoResumeClassObjects()
|
@ stdcall CoResumeClassObjects()
|
||||||
@ stub CoRevertToSelf #@ stdcall () return 0,ERR_NOTIMPLEMENTED
|
@ stub CoRevertToSelf #@ stdcall () return 0,ERR_NOTIMPLEMENTED
|
||||||
@ stdcall CoRevokeClassObject(long)
|
@ stdcall CoRevokeClassObject(long)
|
||||||
@ stdcall CoRevokeMallocSpy()
|
@ stdcall CoRevokeMallocSpy()
|
||||||
@ stdcall CoSetProxyBlanket(ptr long long wstr long long ptr long)
|
@ stdcall CoSetProxyBlanket(ptr long long wstr long long ptr long)
|
||||||
@ stdcall CoSetState(ptr)
|
@ stdcall CoSetState(ptr)
|
||||||
@ stdcall CoSuspendClassObjects()
|
@ stdcall CoSuspendClassObjects()
|
||||||
@ stub CoSwitchCallContext
|
@ stub CoSwitchCallContext
|
||||||
@ stdcall CoTaskMemAlloc(long)
|
@ stdcall CoTaskMemAlloc(long)
|
||||||
@ stdcall CoTaskMemFree(ptr)
|
@ stdcall CoTaskMemFree(ptr)
|
||||||
@ stdcall CoTaskMemRealloc(ptr long)
|
@ stdcall CoTaskMemRealloc(ptr long)
|
||||||
@ stdcall CoTreatAsClass(ptr ptr)
|
@ stdcall CoTreatAsClass(ptr ptr)
|
||||||
@ stdcall CoUninitialize()
|
@ stdcall CoUninitialize()
|
||||||
@ stub CoUnloadingWOW
|
@ stub CoUnloadingWOW
|
||||||
@ stdcall CoUnmarshalHresult(ptr ptr)
|
@ stdcall CoUnmarshalHresult(ptr ptr)
|
||||||
@ stdcall CoUnmarshalInterface(ptr ptr ptr)
|
@ stdcall CoUnmarshalInterface(ptr ptr ptr)
|
||||||
@ stdcall CreateAntiMoniker(ptr)
|
@ stdcall CreateAntiMoniker(ptr)
|
||||||
@ stdcall CreateBindCtx(long ptr)
|
@ stdcall CreateBindCtx(long ptr)
|
||||||
@ stdcall CreateClassMoniker(ptr ptr)
|
@ stdcall CreateClassMoniker(ptr ptr)
|
||||||
@ stdcall CreateDataAdviseHolder(ptr)
|
@ stdcall CreateDataAdviseHolder(ptr)
|
||||||
@ stdcall CreateDataCache(ptr ptr ptr ptr)
|
@ stdcall CreateDataCache(ptr ptr ptr ptr)
|
||||||
@ stdcall CreateErrorInfo(ptr)
|
@ stdcall CreateErrorInfo(ptr)
|
||||||
@ stdcall CreateFileMoniker(wstr ptr)
|
@ stdcall CreateFileMoniker(wstr ptr)
|
||||||
@ stdcall CreateGenericComposite(ptr ptr ptr)
|
@ stdcall CreateGenericComposite(ptr ptr ptr)
|
||||||
@ stdcall CreateILockBytesOnHGlobal(ptr long ptr)
|
@ stdcall CreateILockBytesOnHGlobal(ptr long ptr)
|
||||||
@ stdcall CreateItemMoniker(wstr wstr ptr)
|
@ stdcall CreateItemMoniker(wstr wstr ptr)
|
||||||
@ stub CreateObjrefMoniker
|
@ stub CreateObjrefMoniker
|
||||||
@ stdcall CreateOleAdviseHolder(ptr)
|
@ stdcall CreateOleAdviseHolder(ptr)
|
||||||
@ stub CreatePointerMoniker #@ stdcall (ptr ptr) return 0,ERR_NOTIMPLEMENTED
|
@ stub CreatePointerMoniker #@ stdcall (ptr ptr) return 0,ERR_NOTIMPLEMENTED
|
||||||
@ stdcall CreateStreamOnHGlobal(ptr long ptr)
|
@ stdcall CreateStreamOnHGlobal(ptr long ptr)
|
||||||
@ stdcall DllDebugObjectRPCHook(long ptr)
|
@ stdcall DllDebugObjectRPCHook(long ptr)
|
||||||
@ stdcall -private DllGetClassObject (ptr ptr ptr) OLE32_DllGetClassObject
|
@ stdcall -private DllGetClassObject (ptr ptr ptr) OLE32_DllGetClassObject
|
||||||
@ stub DllGetClassObjectWOW
|
@ stub DllGetClassObjectWOW
|
||||||
@ stdcall -private DllRegisterServer()
|
@ stdcall -private DllRegisterServer()
|
||||||
@ stdcall -private DllUnregisterServer()
|
@ stdcall -private DllUnregisterServer()
|
||||||
@ stdcall DoDragDrop(ptr ptr long ptr)
|
@ stdcall DoDragDrop(ptr ptr long ptr)
|
||||||
@ stub EnableHookObject
|
@ stub EnableHookObject
|
||||||
@ stdcall FmtIdToPropStgName(ptr wstr)
|
@ stdcall FmtIdToPropStgName(ptr wstr)
|
||||||
@ stdcall FreePropVariantArray(long ptr)
|
@ stdcall FreePropVariantArray(long ptr)
|
||||||
@ stdcall GetClassFile(wstr ptr)
|
@ stdcall GetClassFile(wstr ptr)
|
||||||
@ stdcall GetConvertStg(ptr)
|
@ stdcall GetConvertStg(ptr)
|
||||||
@ stub GetDocumentBitStg
|
@ stub GetDocumentBitStg
|
||||||
@ stdcall GetErrorInfo(long ptr)
|
@ stdcall GetErrorInfo(long ptr)
|
||||||
@ stdcall GetHGlobalFromILockBytes(ptr ptr)
|
@ stdcall GetHGlobalFromILockBytes(ptr ptr)
|
||||||
@ stdcall GetHGlobalFromStream(ptr ptr)
|
@ stdcall GetHGlobalFromStream(ptr ptr)
|
||||||
@ stub GetHookInterface
|
@ stub GetHookInterface
|
||||||
@ stdcall GetRunningObjectTable(long ptr)
|
@ stdcall GetRunningObjectTable(long ptr)
|
||||||
@ stub HACCEL_UserFree
|
@ stub HACCEL_UserFree
|
||||||
@ stub HACCEL_UserMarshal
|
@ stub HACCEL_UserMarshal
|
||||||
@ stub HACCEL_UserSize
|
@ stub HACCEL_UserSize
|
||||||
@ stub HACCEL_UserUnmarshal
|
@ stub HACCEL_UserUnmarshal
|
||||||
@ stub HBITMAP_UserFree
|
@ stub HBITMAP_UserFree
|
||||||
@ stub HBITMAP_UserMarshal
|
@ stub HBITMAP_UserMarshal
|
||||||
@ stub HBITMAP_UserSize
|
@ stub HBITMAP_UserSize
|
||||||
@ stub HBITMAP_UserUnmarshal
|
@ stub HBITMAP_UserUnmarshal
|
||||||
@ stub HBRUSH_UserFree
|
@ stub HBRUSH_UserFree
|
||||||
@ stub HBRUSH_UserMarshal
|
@ stub HBRUSH_UserMarshal
|
||||||
@ stub HBRUSH_UserSize
|
@ stub HBRUSH_UserSize
|
||||||
@ stub HBRUSH_UserUnmarshal
|
@ stub HBRUSH_UserUnmarshal
|
||||||
@ stub HENHMETAFILE_UserFree
|
@ stub HENHMETAFILE_UserFree
|
||||||
@ stub HENHMETAFILE_UserMarshal
|
@ stub HENHMETAFILE_UserMarshal
|
||||||
@ stub HENHMETAFILE_UserSize
|
@ stub HENHMETAFILE_UserSize
|
||||||
@ stub HENHMETAFILE_UserUnmarshal
|
@ stub HENHMETAFILE_UserUnmarshal
|
||||||
@ stub HGLOBAL_UserFree
|
@ stub HGLOBAL_UserFree
|
||||||
@ stub HGLOBAL_UserMarshal
|
@ stub HGLOBAL_UserMarshal
|
||||||
@ stub HGLOBAL_UserSize
|
@ stub HGLOBAL_UserSize
|
||||||
@ stub HGLOBAL_UserUnmarshal
|
@ stub HGLOBAL_UserUnmarshal
|
||||||
@ stub HMENU_UserFree
|
@ stub HMENU_UserFree
|
||||||
@ stub HMENU_UserMarshal
|
@ stub HMENU_UserMarshal
|
||||||
@ stub HMENU_UserSize
|
@ stub HMENU_UserSize
|
||||||
@ stub HMENU_UserUnmarshal
|
@ stub HMENU_UserUnmarshal
|
||||||
@ stub HMETAFILEPICT_UserFree
|
@ stub HMETAFILEPICT_UserFree
|
||||||
@ stub HMETAFILEPICT_UserMarshal
|
@ stub HMETAFILEPICT_UserMarshal
|
||||||
@ stub HMETAFILEPICT_UserSize
|
@ stub HMETAFILEPICT_UserSize
|
||||||
@ stub HMETAFILEPICT_UserUnmarshal
|
@ stub HMETAFILEPICT_UserUnmarshal
|
||||||
@ stub HMETAFILE_UserFree
|
@ stub HMETAFILE_UserFree
|
||||||
@ stub HMETAFILE_UserMarshal
|
@ stub HMETAFILE_UserMarshal
|
||||||
@ stub HMETAFILE_UserSize
|
@ stub HMETAFILE_UserSize
|
||||||
@ stub HMETAFILE_UserUnmarshal
|
@ stub HMETAFILE_UserUnmarshal
|
||||||
@ stub HPALETTE_UserFree
|
@ stub HPALETTE_UserFree
|
||||||
@ stub HPALETTE_UserMarshal
|
@ stub HPALETTE_UserMarshal
|
||||||
@ stub HPALETTE_UserSize
|
@ stub HPALETTE_UserSize
|
||||||
@ stub HPALETTE_UserUnmarshal
|
@ stub HPALETTE_UserUnmarshal
|
||||||
@ stub HWND_UserFree
|
@ stub HWND_UserFree
|
||||||
@ stub HWND_UserMarshal
|
@ stub HWND_UserMarshal
|
||||||
@ stub HWND_UserSize
|
@ stub HWND_UserSize
|
||||||
@ stub HWND_UserUnmarshal
|
@ stub HWND_UserUnmarshal
|
||||||
@ stdcall IIDFromString(wstr ptr) CLSIDFromString
|
@ stdcall IIDFromString(wstr ptr) CLSIDFromString
|
||||||
@ stub I_RemoteMain
|
@ stub I_RemoteMain
|
||||||
@ stdcall IsAccelerator(long long ptr long)
|
@ stdcall IsAccelerator(long long ptr long)
|
||||||
@ stdcall IsEqualGUID(ptr ptr)
|
@ stdcall IsEqualGUID(ptr ptr)
|
||||||
@ stub IsValidIid
|
@ stub IsValidIid
|
||||||
@ stdcall IsValidInterface(ptr)
|
@ stdcall IsValidInterface(ptr)
|
||||||
@ stub IsValidPtrIn
|
@ stub IsValidPtrIn
|
||||||
@ stub IsValidPtrOut
|
@ stub IsValidPtrOut
|
||||||
@ stdcall MkParseDisplayName(ptr ptr ptr ptr)
|
@ stdcall MkParseDisplayName(ptr ptr ptr ptr)
|
||||||
@ stdcall MonikerCommonPrefixWith(ptr ptr ptr)
|
@ stdcall MonikerCommonPrefixWith(ptr ptr ptr)
|
||||||
@ stub MonikerRelativePathTo
|
@ stub MonikerRelativePathTo
|
||||||
@ stdcall OleBuildVersion()
|
@ stdcall OleBuildVersion()
|
||||||
@ stdcall OleConvertIStorageToOLESTREAM(ptr ptr)
|
@ stdcall OleConvertIStorageToOLESTREAM(ptr ptr)
|
||||||
@ stub OleConvertIStorageToOLESTREAMEx
|
@ stub OleConvertIStorageToOLESTREAMEx
|
||||||
@ stdcall OleConvertOLESTREAMToIStorage(ptr ptr ptr)
|
@ stdcall OleConvertOLESTREAMToIStorage(ptr ptr ptr)
|
||||||
@ stub OleConvertOLESTREAMToIStorageEx
|
@ stub OleConvertOLESTREAMToIStorageEx
|
||||||
@ stdcall OleCreate(ptr ptr long ptr ptr ptr ptr)
|
@ stdcall OleCreate(ptr ptr long ptr ptr ptr ptr)
|
||||||
@ stdcall OleCreateDefaultHandler(ptr ptr ptr ptr)
|
@ stdcall OleCreateDefaultHandler(ptr ptr ptr ptr)
|
||||||
@ stub OleCreateEmbeddingHelper
|
@ stub OleCreateEmbeddingHelper
|
||||||
@ stub OleCreateEx
|
@ stub OleCreateEx
|
||||||
@ stdcall OleCreateFromData(ptr ptr long ptr ptr ptr ptr)
|
@ stdcall OleCreateFromData(ptr ptr long ptr ptr ptr ptr)
|
||||||
@ stub OleCreateFromDataEx
|
@ stub OleCreateFromDataEx
|
||||||
@ stdcall OleCreateFromFile(ptr ptr ptr long ptr ptr ptr ptr)
|
@ stdcall OleCreateFromFile(ptr ptr ptr long ptr ptr ptr ptr)
|
||||||
@ stub OleCreateFromFileEx
|
@ stub OleCreateFromFileEx
|
||||||
@ stdcall OleCreateLink(ptr ptr long ptr ptr ptr ptr)
|
@ stdcall OleCreateLink(ptr ptr long ptr ptr ptr ptr)
|
||||||
@ stub OleCreateLinkEx
|
@ stub OleCreateLinkEx
|
||||||
@ stdcall OleCreateLinkFromData(ptr ptr long ptr ptr ptr ptr)
|
@ stdcall OleCreateLinkFromData(ptr ptr long ptr ptr ptr ptr)
|
||||||
@ stub OleCreateLinkFromDataEx
|
@ stub OleCreateLinkFromDataEx
|
||||||
@ stdcall OleCreateLinkToFile(ptr ptr long ptr ptr ptr ptr)
|
@ stdcall OleCreateLinkToFile(ptr ptr long ptr ptr ptr ptr)
|
||||||
@ stub OleCreateLinkToFileEx
|
@ stub OleCreateLinkToFileEx
|
||||||
@ stdcall OleCreateMenuDescriptor(long ptr)
|
@ stdcall OleCreateMenuDescriptor(long ptr)
|
||||||
@ stdcall OleCreateStaticFromData(ptr ptr long ptr ptr ptr ptr)
|
@ stdcall OleCreateStaticFromData(ptr ptr long ptr ptr ptr ptr)
|
||||||
@ stdcall OleDestroyMenuDescriptor(long)
|
@ stdcall OleDestroyMenuDescriptor(long)
|
||||||
@ stdcall OleDoAutoConvert(ptr ptr)
|
@ stdcall OleDoAutoConvert(ptr ptr)
|
||||||
@ stdcall OleDraw(ptr long long ptr)
|
@ stdcall OleDraw(ptr long long ptr)
|
||||||
@ stdcall OleDuplicateData(long long long)
|
@ stdcall OleDuplicateData(long long long)
|
||||||
@ stdcall OleFlushClipboard()
|
@ stdcall OleFlushClipboard()
|
||||||
@ stdcall OleGetAutoConvert(ptr ptr)
|
@ stdcall OleGetAutoConvert(ptr ptr)
|
||||||
@ stdcall OleGetClipboard(ptr)
|
@ stdcall OleGetClipboard(ptr)
|
||||||
@ stdcall OleGetIconOfClass(ptr ptr long)
|
@ stdcall OleGetIconOfClass(ptr ptr long)
|
||||||
@ stub OleGetIconOfFile
|
@ stub OleGetIconOfFile
|
||||||
@ stdcall OleInitialize(ptr)
|
@ stdcall OleInitialize(ptr)
|
||||||
@ stdcall OleInitializeWOW(long)
|
@ stdcall OleInitializeWOW(long long)
|
||||||
@ stdcall OleIsCurrentClipboard(ptr)
|
@ stdcall OleIsCurrentClipboard(ptr)
|
||||||
@ stdcall OleIsRunning(ptr)
|
@ stdcall OleIsRunning(ptr)
|
||||||
@ stdcall OleLoad(ptr ptr ptr ptr)
|
@ stdcall OleLoad(ptr ptr ptr ptr)
|
||||||
@ stdcall OleLoadFromStream(ptr ptr ptr)
|
@ stdcall OleLoadFromStream(ptr ptr ptr)
|
||||||
@ stdcall OleLockRunning(ptr long long)
|
@ stdcall OleLockRunning(ptr long long)
|
||||||
@ stdcall OleMetafilePictFromIconAndLabel(long ptr ptr long)
|
@ stdcall OleMetafilePictFromIconAndLabel(long ptr ptr long)
|
||||||
@ stub OleNoteObjectVisible
|
@ stub OleNoteObjectVisible
|
||||||
@ stdcall OleQueryCreateFromData(ptr)
|
@ stdcall OleQueryCreateFromData(ptr)
|
||||||
@ stdcall OleQueryLinkFromData(ptr)
|
@ stdcall OleQueryLinkFromData(ptr)
|
||||||
@ stdcall OleRegEnumFormatEtc(ptr long ptr)
|
@ stdcall OleRegEnumFormatEtc(ptr long ptr)
|
||||||
@ stdcall OleRegEnumVerbs(long ptr)
|
@ stdcall OleRegEnumVerbs(long ptr)
|
||||||
@ stdcall OleRegGetMiscStatus(ptr long ptr)
|
@ stdcall OleRegGetMiscStatus(ptr long ptr)
|
||||||
@ stdcall OleRegGetUserType(long long ptr)
|
@ stdcall OleRegGetUserType(long long ptr)
|
||||||
@ stdcall OleRun(ptr)
|
@ stdcall OleRun(ptr)
|
||||||
@ stdcall OleSave(ptr ptr long)
|
@ stdcall OleSave(ptr ptr long)
|
||||||
@ stdcall OleSaveToStream(ptr ptr)
|
@ stdcall OleSaveToStream(ptr ptr)
|
||||||
@ stdcall OleSetAutoConvert(ptr ptr)
|
@ stdcall OleSetAutoConvert(ptr ptr)
|
||||||
@ stdcall OleSetClipboard(ptr)
|
@ stdcall OleSetClipboard(ptr)
|
||||||
@ stdcall OleSetContainedObject(ptr long)
|
@ stdcall OleSetContainedObject(ptr long)
|
||||||
@ stdcall OleSetMenuDescriptor(long long long ptr ptr)
|
@ stdcall OleSetMenuDescriptor(long long long ptr ptr)
|
||||||
@ stdcall OleTranslateAccelerator(ptr ptr ptr)
|
@ stdcall OleTranslateAccelerator(ptr ptr ptr)
|
||||||
@ stdcall OleUninitialize()
|
@ stdcall OleUninitialize()
|
||||||
@ stub OpenOrCreateStream
|
@ stub OpenOrCreateStream
|
||||||
@ stdcall ProgIDFromCLSID(ptr ptr)
|
@ stdcall ProgIDFromCLSID(ptr ptr)
|
||||||
@ stdcall PropStgNameToFmtId(wstr ptr)
|
@ stdcall PropStgNameToFmtId(wstr ptr)
|
||||||
@ stdcall PropSysAllocString(wstr)
|
@ stdcall PropSysAllocString(wstr)
|
||||||
@ stdcall PropSysFreeString(wstr)
|
@ stdcall PropSysFreeString(wstr)
|
||||||
@ stdcall PropVariantClear(ptr)
|
@ stdcall PropVariantClear(ptr)
|
||||||
@ stdcall PropVariantCopy(ptr ptr)
|
@ stdcall PropVariantCopy(ptr ptr)
|
||||||
@ stdcall ReadClassStg(ptr ptr)
|
@ stdcall ReadClassStg(ptr ptr)
|
||||||
@ stdcall ReadClassStm(ptr ptr)
|
@ stdcall ReadClassStm(ptr ptr)
|
||||||
@ stdcall ReadFmtUserTypeStg(ptr ptr ptr)
|
@ stdcall ReadFmtUserTypeStg(ptr ptr ptr)
|
||||||
@ stub ReadOleStg
|
@ stub ReadOleStg
|
||||||
@ stub ReadStringStream
|
@ stub ReadStringStream
|
||||||
@ stdcall RegisterDragDrop(long ptr)
|
@ stdcall RegisterDragDrop(long ptr)
|
||||||
@ stdcall ReleaseStgMedium(ptr)
|
@ stdcall ReleaseStgMedium(ptr)
|
||||||
@ stdcall RevokeDragDrop(long)
|
@ stdcall RevokeDragDrop(long)
|
||||||
@ stub SNB_UserFree
|
@ stub SNB_UserFree
|
||||||
@ stub SNB_UserMarshal
|
@ stub SNB_UserMarshal
|
||||||
@ stub SNB_UserSize
|
@ stub SNB_UserSize
|
||||||
@ stub SNB_UserUnmarshal
|
@ stub SNB_UserUnmarshal
|
||||||
@ stub STGMEDIUM_UserFree
|
@ stub STGMEDIUM_UserFree
|
||||||
@ stub STGMEDIUM_UserMarshal
|
@ stub STGMEDIUM_UserMarshal
|
||||||
@ stub STGMEDIUM_UserSize
|
@ stub STGMEDIUM_UserSize
|
||||||
@ stub STGMEDIUM_UserUnmarshal
|
@ stub STGMEDIUM_UserUnmarshal
|
||||||
@ stdcall SetConvertStg(ptr long)
|
@ stdcall SetConvertStg(ptr long)
|
||||||
@ stub SetDocumentBitStg
|
@ stub SetDocumentBitStg
|
||||||
@ stdcall SetErrorInfo(long ptr)
|
@ stdcall SetErrorInfo(long ptr)
|
||||||
@ stdcall StgCreateDocfile(wstr long long ptr)
|
@ stdcall StgCreateDocfile(wstr long long ptr)
|
||||||
@ stdcall StgCreateDocfileOnILockBytes(ptr long long ptr)
|
@ stdcall StgCreateDocfileOnILockBytes(ptr long long ptr)
|
||||||
@ stdcall StgCreatePropSetStg(ptr long ptr)
|
@ stdcall StgCreatePropSetStg(ptr long ptr)
|
||||||
@ stdcall StgCreateStorageEx(wstr long long long ptr ptr ptr ptr)
|
@ stdcall StgCreateStorageEx(wstr long long long ptr ptr ptr ptr)
|
||||||
@ stub StgGetIFillLockBytesOnFile
|
@ stub StgGetIFillLockBytesOnFile
|
||||||
@ stub StgGetIFillLockBytesOnILockBytes
|
@ stub StgGetIFillLockBytesOnILockBytes
|
||||||
@ stdcall StgIsStorageFile(wstr)
|
@ stdcall StgIsStorageFile(wstr)
|
||||||
@ stdcall StgIsStorageILockBytes(ptr)
|
@ stdcall StgIsStorageILockBytes(ptr)
|
||||||
@ stub StgOpenAsyncDocfileOnIFillLockBytes
|
@ stub StgOpenAsyncDocfileOnIFillLockBytes
|
||||||
@ stdcall StgOpenStorage(wstr ptr long ptr long ptr)
|
@ stdcall StgOpenStorage(wstr ptr long ptr long ptr)
|
||||||
@ stdcall StgOpenStorageEx(wstr long long long ptr ptr ptr ptr)
|
@ stdcall StgOpenStorageEx(wstr long long long ptr ptr ptr ptr)
|
||||||
@ stdcall StgOpenStorageOnILockBytes(ptr ptr long long long ptr)
|
@ stdcall StgOpenStorageOnILockBytes(ptr ptr long long long ptr)
|
||||||
@ stdcall StgSetTimes(wstr ptr ptr ptr )
|
@ stdcall StgSetTimes(wstr ptr ptr ptr )
|
||||||
@ stdcall StringFromCLSID(ptr ptr)
|
@ stdcall StringFromCLSID(ptr ptr)
|
||||||
@ stdcall StringFromGUID2(ptr ptr long)
|
@ stdcall StringFromGUID2(ptr ptr long)
|
||||||
@ stdcall StringFromIID(ptr ptr) StringFromCLSID
|
@ stdcall StringFromIID(ptr ptr) StringFromCLSID
|
||||||
@ stub UpdateDCOMSettings
|
@ stub UpdateDCOMSettings
|
||||||
@ stub UtConvertDvtd16toDvtd32
|
@ stub UtConvertDvtd16toDvtd32
|
||||||
@ stub UtConvertDvtd32toDvtd16
|
@ stub UtConvertDvtd32toDvtd16
|
||||||
@ stub UtGetDvtd16Info
|
@ stub UtGetDvtd16Info
|
||||||
@ stub UtGetDvtd32Info
|
@ stub UtGetDvtd32Info
|
||||||
@ stub WdtpInterfacePointer_UserFree
|
@ stub WdtpInterfacePointer_UserFree
|
||||||
@ stub WdtpInterfacePointer_UserMarshal
|
@ stub WdtpInterfacePointer_UserMarshal
|
||||||
@ stub WdtpInterfacePointer_UserSize
|
@ stub WdtpInterfacePointer_UserSize
|
||||||
@ stub WdtpInterfacePointer_UserUnmarshal
|
@ stub WdtpInterfacePointer_UserUnmarshal
|
||||||
@ stdcall WriteClassStg(ptr ptr)
|
@ stdcall WriteClassStg(ptr ptr)
|
||||||
@ stdcall WriteClassStm(ptr ptr)
|
@ stdcall WriteClassStm(ptr ptr)
|
||||||
@ stdcall WriteFmtUserTypeStg(ptr long ptr)
|
@ stdcall WriteFmtUserTypeStg(ptr long ptr)
|
||||||
@ stub WriteOleStg
|
@ stub WriteOleStg
|
||||||
@ stub WriteStringStream
|
@ stub WriteStringStream
|
||||||
|
|
|
@ -43,7 +43,7 @@ typedef struct OleAdviseHolderImpl
|
||||||
{
|
{
|
||||||
const IOleAdviseHolderVtbl *lpVtbl;
|
const IOleAdviseHolderVtbl *lpVtbl;
|
||||||
|
|
||||||
DWORD ref;
|
LONG ref;
|
||||||
|
|
||||||
DWORD maxSinks;
|
DWORD maxSinks;
|
||||||
IAdviseSink** arrayOfSinks;
|
IAdviseSink** arrayOfSinks;
|
||||||
|
@ -357,7 +357,7 @@ typedef struct DataAdviseHolder
|
||||||
{
|
{
|
||||||
const IDataAdviseHolderVtbl *lpVtbl;
|
const IDataAdviseHolderVtbl *lpVtbl;
|
||||||
|
|
||||||
DWORD ref;
|
LONG ref;
|
||||||
DWORD maxCons;
|
DWORD maxCons;
|
||||||
DataAdviseConnection* Connections;
|
DataAdviseConnection* Connections;
|
||||||
} DataAdviseHolder;
|
} DataAdviseHolder;
|
||||||
|
|
|
@ -89,7 +89,7 @@ const CLSID CLSID_PSFactoryBuffer = { 0x00000320, 0, 0, {0xc0, 0, 0, 0, 0, 0, 0,
|
||||||
*/
|
*/
|
||||||
typedef struct _CFStub {
|
typedef struct _CFStub {
|
||||||
const IRpcStubBufferVtbl *lpvtbl;
|
const IRpcStubBufferVtbl *lpvtbl;
|
||||||
DWORD ref;
|
LONG ref;
|
||||||
|
|
||||||
LPUNKNOWN pUnkServer;
|
LPUNKNOWN pUnkServer;
|
||||||
} CFStub;
|
} CFStub;
|
||||||
|
@ -117,7 +117,10 @@ CFStub_Release(LPRPCSTUBBUFFER iface) {
|
||||||
ULONG ref;
|
ULONG ref;
|
||||||
|
|
||||||
ref = InterlockedDecrement(&This->ref);
|
ref = InterlockedDecrement(&This->ref);
|
||||||
if (!ref) HeapFree(GetProcessHeap(),0,This);
|
if (!ref) {
|
||||||
|
IRpcStubBuffer_Disconnect(iface);
|
||||||
|
HeapFree(GetProcessHeap(),0,This);
|
||||||
|
}
|
||||||
return ref;
|
return ref;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,9 +137,12 @@ static void WINAPI
|
||||||
CFStub_Disconnect(LPRPCSTUBBUFFER iface) {
|
CFStub_Disconnect(LPRPCSTUBBUFFER iface) {
|
||||||
CFStub *This = (CFStub *)iface;
|
CFStub *This = (CFStub *)iface;
|
||||||
|
|
||||||
IUnknown_Release(This->pUnkServer);
|
if (This->pUnkServer) {
|
||||||
This->pUnkServer = NULL;
|
IUnknown_Release(This->pUnkServer);
|
||||||
|
This->pUnkServer = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI
|
static HRESULT WINAPI
|
||||||
CFStub_Invoke(
|
CFStub_Invoke(
|
||||||
LPRPCSTUBBUFFER iface,RPCOLEMESSAGE* msg,IRpcChannelBuffer* chanbuf
|
LPRPCSTUBBUFFER iface,RPCOLEMESSAGE* msg,IRpcChannelBuffer* chanbuf
|
||||||
|
@ -269,7 +275,7 @@ CFStub_Construct(LPRPCSTUBBUFFER *ppv) {
|
||||||
typedef struct _CFProxy {
|
typedef struct _CFProxy {
|
||||||
const IClassFactoryVtbl *lpvtbl_cf;
|
const IClassFactoryVtbl *lpvtbl_cf;
|
||||||
const IRpcProxyBufferVtbl *lpvtbl_proxy;
|
const IRpcProxyBufferVtbl *lpvtbl_proxy;
|
||||||
DWORD ref;
|
LONG ref;
|
||||||
|
|
||||||
IRpcChannelBuffer *chanbuf;
|
IRpcChannelBuffer *chanbuf;
|
||||||
IUnknown *outer_unknown;
|
IUnknown *outer_unknown;
|
||||||
|
@ -460,7 +466,7 @@ CFProxy_Construct(IUnknown *pUnkOuter, LPVOID *ppv,LPVOID *ppProxy) {
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
const IRpcStubBufferVtbl *lpVtbl;
|
const IRpcStubBufferVtbl *lpVtbl;
|
||||||
ULONG refs;
|
LONG refs;
|
||||||
IRemUnknown *iface;
|
IRemUnknown *iface;
|
||||||
} RemUnkStub;
|
} RemUnkStub;
|
||||||
|
|
||||||
|
@ -546,12 +552,15 @@ static HRESULT WINAPI RemUnkStub_Invoke(LPRPCSTUBBUFFER iface,
|
||||||
hr = IRemUnknown_RemQueryInterface(This->iface, &ipid, cRefs, cIids, iids, &pQIResults);
|
hr = IRemUnknown_RemQueryInterface(This->iface, &ipid, cRefs, cIids, iids, &pQIResults);
|
||||||
|
|
||||||
/* out */
|
/* out */
|
||||||
pMsg->cbBuffer = cIids * sizeof(REMQIRESULT);
|
pMsg->cbBuffer = cIids * sizeof(REMQIRESULT) + sizeof(HRESULT);
|
||||||
|
|
||||||
I_RpcGetBuffer((RPC_MESSAGE *)pMsg);
|
I_RpcGetBuffer((RPC_MESSAGE *)pMsg);
|
||||||
if (hr) return hr;
|
|
||||||
|
|
||||||
buf = pMsg->Buffer;
|
buf = pMsg->Buffer;
|
||||||
|
*(HRESULT *)buf = hr;
|
||||||
|
buf += sizeof(HRESULT);
|
||||||
|
|
||||||
|
if (hr) return hr;
|
||||||
/* FIXME: pQIResults is a unique pointer so pQIResults can be NULL! */
|
/* FIXME: pQIResults is a unique pointer so pQIResults can be NULL! */
|
||||||
memcpy(buf, pQIResults, cIids * sizeof(REMQIRESULT));
|
memcpy(buf, pQIResults, cIids * sizeof(REMQIRESULT));
|
||||||
|
|
||||||
|
@ -655,7 +664,7 @@ static HRESULT RemUnkStub_Construct(IRpcStubBuffer **ppStub)
|
||||||
RemUnkStub *This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
|
RemUnkStub *This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
|
||||||
if (!This) return E_OUTOFMEMORY;
|
if (!This) return E_OUTOFMEMORY;
|
||||||
This->lpVtbl = &RemUnkStub_VTable;
|
This->lpVtbl = &RemUnkStub_VTable;
|
||||||
This->refs = 0;
|
This->refs = 1;
|
||||||
This->iface = NULL;
|
This->iface = NULL;
|
||||||
*ppStub = (IRpcStubBuffer*)This;
|
*ppStub = (IRpcStubBuffer*)This;
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
@ -665,7 +674,7 @@ static HRESULT RemUnkStub_Construct(IRpcStubBuffer **ppStub)
|
||||||
typedef struct _RemUnkProxy {
|
typedef struct _RemUnkProxy {
|
||||||
const IRemUnknownVtbl *lpvtbl_remunk;
|
const IRemUnknownVtbl *lpvtbl_remunk;
|
||||||
const IRpcProxyBufferVtbl *lpvtbl_proxy;
|
const IRpcProxyBufferVtbl *lpvtbl_proxy;
|
||||||
DWORD refs;
|
LONG refs;
|
||||||
|
|
||||||
IRpcChannelBuffer *chan;
|
IRpcChannelBuffer *chan;
|
||||||
IUnknown *outer_unknown;
|
IUnknown *outer_unknown;
|
||||||
|
@ -745,8 +754,14 @@ static HRESULT WINAPI RemUnkProxy_RemQueryInterface(LPREMUNKNOWN iface,
|
||||||
|
|
||||||
hr = IRpcChannelBuffer_SendReceive(This->chan, &msg, &status);
|
hr = IRpcChannelBuffer_SendReceive(This->chan, &msg, &status);
|
||||||
|
|
||||||
|
buf = msg.Buffer;
|
||||||
|
|
||||||
|
if (SUCCEEDED(hr)) {
|
||||||
|
hr = *(HRESULT *)buf;
|
||||||
|
buf += sizeof(HRESULT);
|
||||||
|
}
|
||||||
|
|
||||||
if (SUCCEEDED(hr)) {
|
if (SUCCEEDED(hr)) {
|
||||||
buf = msg.Buffer;
|
|
||||||
*ppQIResults = CoTaskMemAlloc(cIids*sizeof(REMQIRESULT));
|
*ppQIResults = CoTaskMemAlloc(cIids*sizeof(REMQIRESULT));
|
||||||
memcpy(*ppQIResults, buf, cIids*sizeof(REMQIRESULT));
|
memcpy(*ppQIResults, buf, cIids*sizeof(REMQIRESULT));
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,7 @@ static inline void get_rpc_endpoint(LPWSTR endpoint, const OXID *oxid)
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
const IRpcChannelBufferVtbl *lpVtbl;
|
const IRpcChannelBufferVtbl *lpVtbl;
|
||||||
DWORD refs;
|
LONG refs;
|
||||||
} RpcChannelBuffer;
|
} RpcChannelBuffer;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
@ -212,11 +212,15 @@ static DWORD WINAPI rpc_sendreceive_thread(LPVOID param)
|
||||||
static HRESULT WINAPI RpcChannelBuffer_SendReceive(LPRPCCHANNELBUFFER iface, RPCOLEMESSAGE *olemsg, ULONG *pstatus)
|
static HRESULT WINAPI RpcChannelBuffer_SendReceive(LPRPCCHANNELBUFFER iface, RPCOLEMESSAGE *olemsg, ULONG *pstatus)
|
||||||
{
|
{
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
|
RPC_MESSAGE *msg = (RPC_MESSAGE *)olemsg;
|
||||||
RPC_STATUS status;
|
RPC_STATUS status;
|
||||||
DWORD index;
|
DWORD index;
|
||||||
struct dispatch_params *params;
|
struct dispatch_params *params;
|
||||||
DWORD tid;
|
DWORD tid;
|
||||||
|
IRpcStubBuffer *stub;
|
||||||
|
APARTMENT *apt;
|
||||||
|
IPID ipid;
|
||||||
|
|
||||||
TRACE("(%p) iMethod=%ld\n", olemsg, olemsg->iMethod);
|
TRACE("(%p) iMethod=%ld\n", olemsg, olemsg->iMethod);
|
||||||
|
|
||||||
params = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*params));
|
params = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*params));
|
||||||
|
@ -225,18 +229,43 @@ static HRESULT WINAPI RpcChannelBuffer_SendReceive(LPRPCCHANNELBUFFER iface, RPC
|
||||||
params->msg = olemsg;
|
params->msg = olemsg;
|
||||||
params->status = RPC_S_OK;
|
params->status = RPC_S_OK;
|
||||||
|
|
||||||
/* we use a separate thread here because we need to be able to
|
/* Note: this is an optimization in the Microsoft OLE runtime that we need
|
||||||
* pump the message loop in the application thread: if we do not,
|
* to copy, as shown by the test_no_couninitialize_client test. without
|
||||||
* any windows created by this thread will hang and RPCs that try
|
* short-circuiting the RPC runtime in the case below, the test will
|
||||||
* and re-enter this STA from an incoming server thread will
|
* deadlock on the loader lock due to the RPC runtime needing to create
|
||||||
* deadlock. InstallShield is an example of that.
|
* a thread to process the RPC when this function is called indirectly
|
||||||
*/
|
* from DllMain */
|
||||||
params->handle = CreateThread(NULL, 0, rpc_sendreceive_thread, params, 0, &tid);
|
|
||||||
if (!params->handle)
|
RpcBindingInqObject(msg->Handle, &ipid);
|
||||||
|
stub = ipid_to_apt_and_stubbuffer(&ipid, &apt);
|
||||||
|
if (apt && (apt->model & COINIT_APARTMENTTHREADED))
|
||||||
{
|
{
|
||||||
ERR("Could not create RpcSendReceive thread, error %lx\n", GetLastError());
|
params->stub = stub;
|
||||||
hr = E_UNEXPECTED;
|
params->chan = NULL; /* FIXME: pass server channel */
|
||||||
|
params->handle = CreateEventW(NULL, FALSE, FALSE, NULL);
|
||||||
|
|
||||||
|
TRACE("Calling apartment thread 0x%08lx...\n", apt->tid);
|
||||||
|
|
||||||
|
PostMessageW(apt->win, DM_EXECUTERPC, 0, (LPARAM)params);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (stub) IRpcStubBuffer_Release(stub);
|
||||||
|
|
||||||
|
/* we use a separate thread here because we need to be able to
|
||||||
|
* pump the message loop in the application thread: if we do not,
|
||||||
|
* any windows created by this thread will hang and RPCs that try
|
||||||
|
* and re-enter this STA from an incoming server thread will
|
||||||
|
* deadlock. InstallShield is an example of that.
|
||||||
|
*/
|
||||||
|
params->handle = CreateThread(NULL, 0, rpc_sendreceive_thread, params, 0, &tid);
|
||||||
|
if (!params->handle)
|
||||||
|
{
|
||||||
|
ERR("Could not create RpcSendReceive thread, error %lx\n", GetLastError());
|
||||||
|
hr = E_UNEXPECTED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (apt) apartment_release(apt);
|
||||||
|
|
||||||
if (hr == S_OK)
|
if (hr == S_OK)
|
||||||
hr = CoWaitForMultipleHandles(0, INFINITE, 1, ¶ms->handle, &index);
|
hr = CoWaitForMultipleHandles(0, INFINITE, 1, ¶ms->handle, &index);
|
||||||
|
@ -431,7 +460,7 @@ static void __RPC_STUB dispatch_rpc(RPC_MESSAGE *msg)
|
||||||
if (!apt || !stub)
|
if (!apt || !stub)
|
||||||
{
|
{
|
||||||
if (apt) apartment_release(apt);
|
if (apt) apartment_release(apt);
|
||||||
/* ipid_to_apt_and_stubbuffer will already have logged the error */
|
ERR("no apartment found for ipid %s\n", debugstr_guid(&ipid));
|
||||||
return RpcRaiseException(RPC_E_DISCONNECTED);
|
return RpcRaiseException(RPC_E_DISCONNECTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -155,7 +155,7 @@ static const IPropertyStorageVtbl IPropertyStorage_Vtbl;
|
||||||
typedef struct tagPropertyStorage_impl
|
typedef struct tagPropertyStorage_impl
|
||||||
{
|
{
|
||||||
const IPropertyStorageVtbl *vtbl;
|
const IPropertyStorageVtbl *vtbl;
|
||||||
DWORD ref;
|
LONG ref;
|
||||||
CRITICAL_SECTION cs;
|
CRITICAL_SECTION cs;
|
||||||
IStream *stm;
|
IStream *stm;
|
||||||
BOOL dirty;
|
BOOL dirty;
|
||||||
|
|
|
@ -956,7 +956,7 @@ typedef struct
|
||||||
{
|
{
|
||||||
/* IUnknown fields */
|
/* IUnknown fields */
|
||||||
const IStream16Vtbl *lpVtbl;
|
const IStream16Vtbl *lpVtbl;
|
||||||
DWORD ref;
|
LONG ref;
|
||||||
/* IStream16 fields */
|
/* IStream16 fields */
|
||||||
SEGPTR thisptr; /* pointer to this struct as segmented */
|
SEGPTR thisptr; /* pointer to this struct as segmented */
|
||||||
struct storage_pps_entry stde;
|
struct storage_pps_entry stde;
|
||||||
|
@ -968,7 +968,7 @@ typedef struct
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStream16_QueryInterface [STORAGE.518]
|
* IStream16_QueryInterface [STORAGE.518]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI IStream16_fnQueryInterface(
|
HRESULT IStream16_fnQueryInterface(
|
||||||
IStream16* iface,REFIID refiid,LPVOID *obj
|
IStream16* iface,REFIID refiid,LPVOID *obj
|
||||||
) {
|
) {
|
||||||
IStream16Impl *This = (IStream16Impl *)iface;
|
IStream16Impl *This = (IStream16Impl *)iface;
|
||||||
|
@ -984,7 +984,7 @@ HRESULT WINAPI IStream16_fnQueryInterface(
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStream16_AddRef [STORAGE.519]
|
* IStream16_AddRef [STORAGE.519]
|
||||||
*/
|
*/
|
||||||
ULONG WINAPI IStream16_fnAddRef(IStream16* iface) {
|
ULONG IStream16_fnAddRef(IStream16* iface) {
|
||||||
IStream16Impl *This = (IStream16Impl *)iface;
|
IStream16Impl *This = (IStream16Impl *)iface;
|
||||||
return InterlockedIncrement(&This->ref);
|
return InterlockedIncrement(&This->ref);
|
||||||
}
|
}
|
||||||
|
@ -992,7 +992,7 @@ ULONG WINAPI IStream16_fnAddRef(IStream16* iface) {
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStream16_Release [STORAGE.520]
|
* IStream16_Release [STORAGE.520]
|
||||||
*/
|
*/
|
||||||
ULONG WINAPI IStream16_fnRelease(IStream16* iface) {
|
ULONG IStream16_fnRelease(IStream16* iface) {
|
||||||
IStream16Impl *This = (IStream16Impl *)iface;
|
IStream16Impl *This = (IStream16Impl *)iface;
|
||||||
ULONG ref;
|
ULONG ref;
|
||||||
FlushFileBuffers(This->hf);
|
FlushFileBuffers(This->hf);
|
||||||
|
@ -1011,7 +1011,7 @@ ULONG WINAPI IStream16_fnRelease(IStream16* iface) {
|
||||||
* FIXME
|
* FIXME
|
||||||
* Does not handle 64 bits
|
* Does not handle 64 bits
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI IStream16_fnSeek(
|
HRESULT IStream16_fnSeek(
|
||||||
IStream16* iface,LARGE_INTEGER offset,DWORD whence,ULARGE_INTEGER *newpos
|
IStream16* iface,LARGE_INTEGER offset,DWORD whence,ULARGE_INTEGER *newpos
|
||||||
) {
|
) {
|
||||||
IStream16Impl *This = (IStream16Impl *)iface;
|
IStream16Impl *This = (IStream16Impl *)iface;
|
||||||
|
@ -1055,7 +1055,7 @@ HRESULT WINAPI IStream16_fnSeek(
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStream16_Read [STORAGE.521]
|
* IStream16_Read [STORAGE.521]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI IStream16_fnRead(
|
HRESULT IStream16_fnRead(
|
||||||
IStream16* iface,void *pv,ULONG cb,ULONG *pcbRead
|
IStream16* iface,void *pv,ULONG cb,ULONG *pcbRead
|
||||||
) {
|
) {
|
||||||
IStream16Impl *This = (IStream16Impl *)iface;
|
IStream16Impl *This = (IStream16Impl *)iface;
|
||||||
|
@ -1117,7 +1117,7 @@ HRESULT WINAPI IStream16_fnRead(
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStream16_Write [STORAGE.522]
|
* IStream16_Write [STORAGE.522]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI IStream16_fnWrite(
|
HRESULT IStream16_fnWrite(
|
||||||
IStream16* iface,const void *pv,ULONG cb,ULONG *pcbWrite
|
IStream16* iface,const void *pv,ULONG cb,ULONG *pcbWrite
|
||||||
) {
|
) {
|
||||||
IStream16Impl *This = (IStream16Impl *)iface;
|
IStream16Impl *This = (IStream16Impl *)iface;
|
||||||
|
@ -1450,7 +1450,7 @@ typedef struct
|
||||||
{
|
{
|
||||||
/* IUnknown fields */
|
/* IUnknown fields */
|
||||||
const IStreamVtbl *lpVtbl;
|
const IStreamVtbl *lpVtbl;
|
||||||
DWORD ref;
|
LONG ref;
|
||||||
/* IStream32 fields */
|
/* IStream32 fields */
|
||||||
struct storage_pps_entry stde;
|
struct storage_pps_entry stde;
|
||||||
int ppsent;
|
int ppsent;
|
||||||
|
@ -1504,7 +1504,7 @@ typedef struct
|
||||||
{
|
{
|
||||||
/* IUnknown fields */
|
/* IUnknown fields */
|
||||||
const IStorage16Vtbl *lpVtbl;
|
const IStorage16Vtbl *lpVtbl;
|
||||||
DWORD ref;
|
LONG ref;
|
||||||
/* IStorage16 fields */
|
/* IStorage16 fields */
|
||||||
SEGPTR thisptr; /* pointer to this struct as segmented */
|
SEGPTR thisptr; /* pointer to this struct as segmented */
|
||||||
struct storage_pps_entry stde;
|
struct storage_pps_entry stde;
|
||||||
|
@ -1515,7 +1515,7 @@ typedef struct
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStorage16_QueryInterface [STORAGE.500]
|
* IStorage16_QueryInterface [STORAGE.500]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI IStorage16_fnQueryInterface(
|
HRESULT IStorage16_fnQueryInterface(
|
||||||
IStorage16* iface,REFIID refiid,LPVOID *obj
|
IStorage16* iface,REFIID refiid,LPVOID *obj
|
||||||
) {
|
) {
|
||||||
IStorage16Impl *This = (IStorage16Impl *)iface;
|
IStorage16Impl *This = (IStorage16Impl *)iface;
|
||||||
|
@ -1532,7 +1532,7 @@ HRESULT WINAPI IStorage16_fnQueryInterface(
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStorage16_AddRef [STORAGE.501]
|
* IStorage16_AddRef [STORAGE.501]
|
||||||
*/
|
*/
|
||||||
ULONG WINAPI IStorage16_fnAddRef(IStorage16* iface) {
|
ULONG IStorage16_fnAddRef(IStorage16* iface) {
|
||||||
IStorage16Impl *This = (IStorage16Impl *)iface;
|
IStorage16Impl *This = (IStorage16Impl *)iface;
|
||||||
return InterlockedIncrement(&This->ref);
|
return InterlockedIncrement(&This->ref);
|
||||||
}
|
}
|
||||||
|
@ -1540,7 +1540,7 @@ ULONG WINAPI IStorage16_fnAddRef(IStorage16* iface) {
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStorage16_Release [STORAGE.502]
|
* IStorage16_Release [STORAGE.502]
|
||||||
*/
|
*/
|
||||||
ULONG WINAPI IStorage16_fnRelease(IStorage16* iface) {
|
ULONG IStorage16_fnRelease(IStorage16* iface) {
|
||||||
IStorage16Impl *This = (IStorage16Impl *)iface;
|
IStorage16Impl *This = (IStorage16Impl *)iface;
|
||||||
ULONG ref;
|
ULONG ref;
|
||||||
ref = InterlockedDecrement(&This->ref);
|
ref = InterlockedDecrement(&This->ref);
|
||||||
|
@ -1555,7 +1555,7 @@ ULONG WINAPI IStorage16_fnRelease(IStorage16* iface) {
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStorage16_Stat [STORAGE.517]
|
* IStorage16_Stat [STORAGE.517]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI IStorage16_fnStat(
|
HRESULT IStorage16_fnStat(
|
||||||
LPSTORAGE16 iface,STATSTG16 *pstatstg, DWORD grfStatFlag
|
LPSTORAGE16 iface,STATSTG16 *pstatstg, DWORD grfStatFlag
|
||||||
) {
|
) {
|
||||||
IStorage16Impl *This = (IStorage16Impl *)iface;
|
IStorage16Impl *This = (IStorage16Impl *)iface;
|
||||||
|
@ -1583,7 +1583,7 @@ HRESULT WINAPI IStorage16_fnStat(
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStorage16_Commit [STORAGE.509]
|
* IStorage16_Commit [STORAGE.509]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI IStorage16_fnCommit(
|
HRESULT IStorage16_fnCommit(
|
||||||
LPSTORAGE16 iface,DWORD commitflags
|
LPSTORAGE16 iface,DWORD commitflags
|
||||||
) {
|
) {
|
||||||
IStorage16Impl *This = (IStorage16Impl *)iface;
|
IStorage16Impl *This = (IStorage16Impl *)iface;
|
||||||
|
@ -1596,7 +1596,7 @@ HRESULT WINAPI IStorage16_fnCommit(
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStorage16_CopyTo [STORAGE.507]
|
* IStorage16_CopyTo [STORAGE.507]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI IStorage16_fnCopyTo(LPSTORAGE16 iface,DWORD ciidExclude,const IID *rgiidExclude,SNB16 SNB16Exclude,IStorage16 *pstgDest) {
|
HRESULT IStorage16_fnCopyTo(LPSTORAGE16 iface,DWORD ciidExclude,const IID *rgiidExclude,SNB16 SNB16Exclude,IStorage16 *pstgDest) {
|
||||||
IStorage16Impl *This = (IStorage16Impl *)iface;
|
IStorage16Impl *This = (IStorage16Impl *)iface;
|
||||||
FIXME("IStorage16(%p)->(0x%08lx,%s,%p,%p),stub!\n",
|
FIXME("IStorage16(%p)->(0x%08lx,%s,%p,%p),stub!\n",
|
||||||
This,ciidExclude,debugstr_guid(rgiidExclude),SNB16Exclude,pstgDest
|
This,ciidExclude,debugstr_guid(rgiidExclude),SNB16Exclude,pstgDest
|
||||||
|
@ -1608,7 +1608,7 @@ HRESULT WINAPI IStorage16_fnCopyTo(LPSTORAGE16 iface,DWORD ciidExclude,const IID
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStorage16_CreateStorage [STORAGE.505]
|
* IStorage16_CreateStorage [STORAGE.505]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI IStorage16_fnCreateStorage(
|
HRESULT IStorage16_fnCreateStorage(
|
||||||
LPSTORAGE16 iface,LPCOLESTR16 pwcsName,DWORD grfMode,DWORD dwStgFormat,DWORD reserved2, IStorage16 **ppstg
|
LPSTORAGE16 iface,LPCOLESTR16 pwcsName,DWORD grfMode,DWORD dwStgFormat,DWORD reserved2, IStorage16 **ppstg
|
||||||
) {
|
) {
|
||||||
IStorage16Impl *This = (IStorage16Impl *)iface;
|
IStorage16Impl *This = (IStorage16Impl *)iface;
|
||||||
|
@ -1673,7 +1673,7 @@ HRESULT WINAPI IStorage16_fnCreateStorage(
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStorage16_CreateStream [STORAGE.503]
|
* IStorage16_CreateStream [STORAGE.503]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI IStorage16_fnCreateStream(
|
HRESULT IStorage16_fnCreateStream(
|
||||||
LPSTORAGE16 iface,LPCOLESTR16 pwcsName,DWORD grfMode,DWORD reserved1,DWORD reserved2, IStream16 **ppstm
|
LPSTORAGE16 iface,LPCOLESTR16 pwcsName,DWORD grfMode,DWORD reserved1,DWORD reserved2, IStream16 **ppstm
|
||||||
) {
|
) {
|
||||||
IStorage16Impl *This = (IStorage16Impl *)iface;
|
IStorage16Impl *This = (IStorage16Impl *)iface;
|
||||||
|
@ -1731,7 +1731,7 @@ HRESULT WINAPI IStorage16_fnCreateStream(
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStorage16_OpenStorage [STORAGE.506]
|
* IStorage16_OpenStorage [STORAGE.506]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI IStorage16_fnOpenStorage(
|
HRESULT IStorage16_fnOpenStorage(
|
||||||
LPSTORAGE16 iface,LPCOLESTR16 pwcsName, IStorage16 *pstgPrio, DWORD grfMode, SNB16 snbExclude, DWORD reserved, IStorage16 **ppstg
|
LPSTORAGE16 iface,LPCOLESTR16 pwcsName, IStorage16 *pstgPrio, DWORD grfMode, SNB16 snbExclude, DWORD reserved, IStorage16 **ppstg
|
||||||
) {
|
) {
|
||||||
IStorage16Impl *This = (IStorage16Impl *)iface;
|
IStorage16Impl *This = (IStorage16Impl *)iface;
|
||||||
|
@ -1766,7 +1766,7 @@ HRESULT WINAPI IStorage16_fnOpenStorage(
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* IStorage16_OpenStream [STORAGE.504]
|
* IStorage16_OpenStream [STORAGE.504]
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI IStorage16_fnOpenStream(
|
HRESULT IStorage16_fnOpenStream(
|
||||||
LPSTORAGE16 iface,LPCOLESTR16 pwcsName, void *reserved1, DWORD grfMode, DWORD reserved2, IStream16 **ppstm
|
LPSTORAGE16 iface,LPCOLESTR16 pwcsName, void *reserved1, DWORD grfMode, DWORD reserved2, IStream16 **ppstm
|
||||||
) {
|
) {
|
||||||
IStorage16Impl *This = (IStorage16Impl *)iface;
|
IStorage16Impl *This = (IStorage16Impl *)iface;
|
||||||
|
|
|
@ -1,59 +1,59 @@
|
||||||
# Compound Storage DLL.
|
# Compound Storage DLL.
|
||||||
# (FIXME: some methods are commented out. Commenting them in _WILL_
|
# (FIXME: some methods are commented out. Commenting them in _WILL_
|
||||||
# result in dataloss. Do it at your own risk.)
|
# result in dataloss. Do it at your own risk.)
|
||||||
|
|
||||||
1 pascal StgCreateDocFileA(str long long ptr) StgCreateDocFile16
|
1 pascal StgCreateDocFileA(str long long ptr) StgCreateDocFile16
|
||||||
2 stub StgCreateDocFileOnILockBytes
|
2 stub StgCreateDocFileOnILockBytes
|
||||||
# 2 pascal StgCreateDocFileOnILockBytes(ptr long long ptr) StgCreateDocFileOnILockBytes16
|
# 2 pascal StgCreateDocFileOnILockBytes(ptr long long ptr) StgCreateDocFileOnILockBytes16
|
||||||
3 pascal StgOpenStorage(str ptr long ptr long ptr) StgOpenStorage16
|
3 pascal StgOpenStorage(str ptr long ptr long ptr) StgOpenStorage16
|
||||||
4 pascal StgOpenStorageOnILockBytes(ptr ptr long long long ptr) StgOpenStorageOnILockBytes16
|
4 pascal StgOpenStorageOnILockBytes(ptr ptr long long long ptr) StgOpenStorageOnILockBytes16
|
||||||
5 pascal StgIsStorageFile(str) StgIsStorageFile16
|
5 pascal StgIsStorageFile(str) StgIsStorageFile16
|
||||||
6 pascal StgIsStorageILockBytes(segptr) StgIsStorageILockBytes16
|
6 pascal StgIsStorageILockBytes(segptr) StgIsStorageILockBytes16
|
||||||
7 stub StgSetTimes
|
7 stub StgSetTimes
|
||||||
#8 WEP
|
#8 WEP
|
||||||
#9 ___EXPORTEDSTUB
|
#9 ___EXPORTEDSTUB
|
||||||
103 stub DllGetClassObject
|
103 stub DllGetClassObject
|
||||||
|
|
||||||
# Storage Interface functions. Starting at 500
|
# Storage Interface functions. Starting at 500
|
||||||
# these are not exported in the real storage.dll, we use them
|
# these are not exported in the real storage.dll, we use them
|
||||||
# as 16->32 relays. They use the cdecl calling convention.
|
# as 16->32 relays. They use the cdecl calling convention.
|
||||||
|
|
||||||
# IStorage
|
# IStorage
|
||||||
500 cdecl IStorage16_QueryInterface(ptr ptr ptr) IStorage16_fnQueryInterface
|
500 cdecl IStorage16_QueryInterface(ptr ptr ptr) IStorage16_fnQueryInterface
|
||||||
501 cdecl IStorage16_AddRef(ptr) IStorage16_fnAddRef
|
501 cdecl IStorage16_AddRef(ptr) IStorage16_fnAddRef
|
||||||
502 cdecl IStorage16_Release(ptr) IStorage16_fnRelease
|
502 cdecl IStorage16_Release(ptr) IStorage16_fnRelease
|
||||||
#503 cdecl IStorage16_CreateStream(ptr str long long long ptr) IStorage16_fnCreateStream
|
#503 cdecl IStorage16_CreateStream(ptr str long long long ptr) IStorage16_fnCreateStream
|
||||||
503 stub IStorage16_CreateStream
|
503 stub IStorage16_CreateStream
|
||||||
|
|
||||||
504 cdecl IStorage16_OpenStream(ptr str ptr long long ptr) IStorage16_fnOpenStream
|
504 cdecl IStorage16_OpenStream(ptr str ptr long long ptr) IStorage16_fnOpenStream
|
||||||
#505 cdecl IStorage16_CreateStorage(ptr str long long long ptr) IStorage16_fnCreateStorage
|
#505 cdecl IStorage16_CreateStorage(ptr str long long long ptr) IStorage16_fnCreateStorage
|
||||||
505 stub IStorage16_CreateStorage
|
505 stub IStorage16_CreateStorage
|
||||||
506 cdecl IStorage16_OpenStorage(ptr str ptr long ptr long ptr) IStorage16_fnOpenStorage
|
506 cdecl IStorage16_OpenStorage(ptr str ptr long ptr long ptr) IStorage16_fnOpenStorage
|
||||||
507 cdecl IStorage16_CopyTo(ptr long ptr ptr ptr) IStorage16_fnCopyTo
|
507 cdecl IStorage16_CopyTo(ptr long ptr ptr ptr) IStorage16_fnCopyTo
|
||||||
508 stub IStorage16_MoveElementTo
|
508 stub IStorage16_MoveElementTo
|
||||||
509 cdecl IStorage16_Commit(ptr long) IStorage16_fnCommit
|
509 cdecl IStorage16_Commit(ptr long) IStorage16_fnCommit
|
||||||
510 stub IStorage16_Revert
|
510 stub IStorage16_Revert
|
||||||
511 stub IStorage16_EnumElements
|
511 stub IStorage16_EnumElements
|
||||||
512 stub IStorage16_DestroyElement
|
512 stub IStorage16_DestroyElement
|
||||||
513 stub IStorage16_RenameElement
|
513 stub IStorage16_RenameElement
|
||||||
514 stub IStorage16_SetElementTimes
|
514 stub IStorage16_SetElementTimes
|
||||||
515 stub IStorage16_SetClass
|
515 stub IStorage16_SetClass
|
||||||
516 stub IStorage16_SetStateBits
|
516 stub IStorage16_SetStateBits
|
||||||
517 cdecl IStorage16_Stat(ptr ptr long) IStorage16_fnStat
|
517 cdecl IStorage16_Stat(ptr ptr long) IStorage16_fnStat
|
||||||
|
|
||||||
# IStream
|
# IStream
|
||||||
518 cdecl IStream16_QueryInterface(ptr ptr ptr) IStream16_fnQueryInterface
|
518 cdecl IStream16_QueryInterface(ptr ptr ptr) IStream16_fnQueryInterface
|
||||||
519 cdecl IStream16_AddRef(ptr) IStream16_fnAddRef
|
519 cdecl IStream16_AddRef(ptr) IStream16_fnAddRef
|
||||||
520 cdecl IStream16_Release(ptr) IStream16_fnRelease
|
520 cdecl IStream16_Release(ptr) IStream16_fnRelease
|
||||||
521 cdecl IStream16_Read(ptr ptr long ptr) IStream16_fnRead
|
521 cdecl IStream16_Read(ptr ptr long ptr) IStream16_fnRead
|
||||||
#522 cdecl IStream16_Write(ptr ptr long ptr) IStream16_fnWrite
|
#522 cdecl IStream16_Write(ptr ptr long ptr) IStream16_fnWrite
|
||||||
522 stub IStream16_Write
|
522 stub IStream16_Write
|
||||||
523 cdecl IStream16_Seek(ptr long long long ptr) IStream16_fnSeek
|
523 cdecl IStream16_Seek(ptr long long long ptr) IStream16_fnSeek
|
||||||
524 stub IStream16_SetSize
|
524 stub IStream16_SetSize
|
||||||
525 stub IStream16_CopyTo
|
525 stub IStream16_CopyTo
|
||||||
526 stub IStream16_Commit
|
526 stub IStream16_Commit
|
||||||
527 stub IStream16_Revert
|
527 stub IStream16_Revert
|
||||||
528 stub IStream16_LockRegion
|
528 stub IStream16_LockRegion
|
||||||
529 stub IStream16_UnlockRegion
|
529 stub IStream16_UnlockRegion
|
||||||
530 stub IStream16_Stat
|
530 stub IStream16_Stat
|
||||||
531 stub IStream16_Clone
|
531 stub IStream16_Clone
|
||||||
|
|
|
@ -23,6 +23,14 @@
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
* License along with this library; if not, write to the Free Software
|
* License along with this library; if not, write to the Free Software
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
* NOTES
|
||||||
|
* The compound file implementation of IStorage used for create
|
||||||
|
* and manage substorages and streams within a storage object
|
||||||
|
* residing in a compound file object.
|
||||||
|
*
|
||||||
|
* MSDN
|
||||||
|
* http://msdn.microsoft.com/library/default.asp?url=/library/en-us/stg/stg/istorage_compound_file_implementation.asp
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
@ -1583,6 +1591,13 @@ HRESULT WINAPI StorageImpl_MoveElementTo(
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* Commit (IStorage)
|
* Commit (IStorage)
|
||||||
|
*
|
||||||
|
* Ensures that any changes made to a storage object open in transacted mode
|
||||||
|
* are reflected in the parent storage
|
||||||
|
*
|
||||||
|
* NOTES
|
||||||
|
* Wine doesn't implement transacted mode, which seems to be a basic
|
||||||
|
* optimization, so we can ignore this stub for now.
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI StorageImpl_Commit(
|
HRESULT WINAPI StorageImpl_Commit(
|
||||||
IStorage* iface,
|
IStorage* iface,
|
||||||
|
@ -1594,6 +1609,8 @@ HRESULT WINAPI StorageImpl_Commit(
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* Revert (IStorage)
|
* Revert (IStorage)
|
||||||
|
*
|
||||||
|
* Discard all changes that have been made since the last commit operation
|
||||||
*/
|
*/
|
||||||
HRESULT WINAPI StorageImpl_Revert(
|
HRESULT WINAPI StorageImpl_Revert(
|
||||||
IStorage* iface)
|
IStorage* iface)
|
||||||
|
@ -6387,7 +6404,7 @@ static DWORD GetCreationModeFromSTGM(DWORD stgm)
|
||||||
*
|
*
|
||||||
* Memory allocated for pData must be freed by the caller
|
* Memory allocated for pData must be freed by the caller
|
||||||
*/
|
*/
|
||||||
HRESULT OLECONVERT_LoadOLE10(LPOLESTREAM pOleStream, OLECONVERT_OLESTREAM_DATA *pData, BOOL bStrem1)
|
static HRESULT OLECONVERT_LoadOLE10(LPOLESTREAM pOleStream, OLECONVERT_OLESTREAM_DATA *pData, BOOL bStrem1)
|
||||||
{
|
{
|
||||||
DWORD dwSize;
|
DWORD dwSize;
|
||||||
HRESULT hRes = S_OK;
|
HRESULT hRes = S_OK;
|
||||||
|
@ -6555,7 +6572,7 @@ HRESULT OLECONVERT_LoadOLE10(LPOLESTREAM pOleStream, OLECONVERT_OLESTREAM_DATA *
|
||||||
* This function is used by OleConvertIStorageToOLESTREAM only.
|
* This function is used by OleConvertIStorageToOLESTREAM only.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
HRESULT OLECONVERT_SaveOLE10(OLECONVERT_OLESTREAM_DATA *pData, LPOLESTREAM pOleStream)
|
static HRESULT OLECONVERT_SaveOLE10(OLECONVERT_OLESTREAM_DATA *pData, LPOLESTREAM pOleStream)
|
||||||
{
|
{
|
||||||
DWORD dwSize;
|
DWORD dwSize;
|
||||||
HRESULT hRes = S_OK;
|
HRESULT hRes = S_OK;
|
||||||
|
@ -6666,7 +6683,7 @@ HRESULT OLECONVERT_SaveOLE10(OLECONVERT_OLESTREAM_DATA *pData, LPOLESTREAM pOleS
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void OLECONVERT_GetOLE20FromOLE10(LPSTORAGE pDestStorage, BYTE *pBuffer, DWORD nBufferLength)
|
static void OLECONVERT_GetOLE20FromOLE10(LPSTORAGE pDestStorage, BYTE *pBuffer, DWORD nBufferLength)
|
||||||
{
|
{
|
||||||
HRESULT hRes;
|
HRESULT hRes;
|
||||||
HANDLE hFile;
|
HANDLE hFile;
|
||||||
|
@ -6716,7 +6733,7 @@ void OLECONVERT_GetOLE20FromOLE10(LPSTORAGE pDestStorage, BYTE *pBuffer, DWORD n
|
||||||
* Used by OleConvertIStorageToOLESTREAM only.
|
* Used by OleConvertIStorageToOLESTREAM only.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
DWORD OLECONVERT_WriteOLE20ToBuffer(LPSTORAGE pStorage, BYTE **pData)
|
static DWORD OLECONVERT_WriteOLE20ToBuffer(LPSTORAGE pStorage, BYTE **pData)
|
||||||
{
|
{
|
||||||
HANDLE hFile;
|
HANDLE hFile;
|
||||||
HRESULT hRes;
|
HRESULT hRes;
|
||||||
|
@ -7132,7 +7149,7 @@ HRESULT OLECONVERT_CreateCompObjStream(LPSTORAGE pStorage, LPCSTR strOleTypeName
|
||||||
* This function is used by OleConvertOLESTREAMToIStorage only.
|
* This function is used by OleConvertOLESTREAMToIStorage only.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void OLECONVERT_CreateOlePresStream(LPSTORAGE pStorage, DWORD dwExtentX, DWORD dwExtentY , BYTE *pData, DWORD dwDataLength)
|
static void OLECONVERT_CreateOlePresStream(LPSTORAGE pStorage, DWORD dwExtentX, DWORD dwExtentY , BYTE *pData, DWORD dwDataLength)
|
||||||
{
|
{
|
||||||
HRESULT hRes;
|
HRESULT hRes;
|
||||||
IStream *pStream;
|
IStream *pStream;
|
||||||
|
@ -7216,7 +7233,7 @@ void OLECONVERT_CreateOlePresStream(LPSTORAGE pStorage, DWORD dwExtentX, DWORD d
|
||||||
* Might need to verify the data and return appropriate error message
|
* Might need to verify the data and return appropriate error message
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void OLECONVERT_CreateOle10NativeStream(LPSTORAGE pStorage, BYTE *pData, DWORD dwDataLength)
|
static void OLECONVERT_CreateOle10NativeStream(LPSTORAGE pStorage, BYTE *pData, DWORD dwDataLength)
|
||||||
{
|
{
|
||||||
HRESULT hRes;
|
HRESULT hRes;
|
||||||
IStream *pStream;
|
IStream *pStream;
|
||||||
|
@ -7255,7 +7272,7 @@ void OLECONVERT_CreateOle10NativeStream(LPSTORAGE pStorage, BYTE *pData, DWORD d
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
HRESULT OLECONVERT_GetOLE10ProgID(LPSTORAGE pStorage, char *strProgID, DWORD *dwSize)
|
static HRESULT OLECONVERT_GetOLE10ProgID(LPSTORAGE pStorage, char *strProgID, DWORD *dwSize)
|
||||||
{
|
{
|
||||||
HRESULT hRes;
|
HRESULT hRes;
|
||||||
IStream *pStream;
|
IStream *pStream;
|
||||||
|
@ -7325,7 +7342,7 @@ HRESULT OLECONVERT_GetOLE10ProgID(LPSTORAGE pStorage, char *strProgID, DWORD *dw
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
void OLECONVERT_GetOle10PresData(LPSTORAGE pStorage, OLECONVERT_OLESTREAM_DATA *pOleStreamData)
|
static void OLECONVERT_GetOle10PresData(LPSTORAGE pStorage, OLECONVERT_OLESTREAM_DATA *pOleStreamData)
|
||||||
{
|
{
|
||||||
|
|
||||||
HRESULT hRes;
|
HRESULT hRes;
|
||||||
|
@ -7378,7 +7395,7 @@ void OLECONVERT_GetOle10PresData(LPSTORAGE pStorage, OLECONVERT_OLESTREAM_DATA *
|
||||||
*
|
*
|
||||||
* Memory allocated for pData must be freed by the caller
|
* Memory allocated for pData must be freed by the caller
|
||||||
*/
|
*/
|
||||||
void OLECONVERT_GetOle20PresData(LPSTORAGE pStorage, OLECONVERT_OLESTREAM_DATA *pOleStreamData)
|
static void OLECONVERT_GetOle20PresData(LPSTORAGE pStorage, OLECONVERT_OLESTREAM_DATA *pOleStreamData)
|
||||||
{
|
{
|
||||||
HRESULT hRes;
|
HRESULT hRes;
|
||||||
IStream *pStream;
|
IStream *pStream;
|
||||||
|
|
|
@ -222,7 +222,7 @@ struct StorageBaseImpl
|
||||||
/*
|
/*
|
||||||
* Reference count of this object
|
* Reference count of this object
|
||||||
*/
|
*/
|
||||||
ULONG ref;
|
LONG ref;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Ancestor storage (top level)
|
* Ancestor storage (top level)
|
||||||
|
@ -430,7 +430,7 @@ struct IEnumSTATSTGImpl
|
||||||
const IEnumSTATSTGVtbl *lpVtbl; /* Needs to be the first item in the struct
|
const IEnumSTATSTGVtbl *lpVtbl; /* Needs to be the first item in the struct
|
||||||
* since we want to cast this in an IEnumSTATSTG pointer */
|
* since we want to cast this in an IEnumSTATSTG pointer */
|
||||||
|
|
||||||
ULONG ref; /* Reference count */
|
LONG ref; /* Reference count */
|
||||||
StorageImpl* parentStorage; /* Reference to the parent storage */
|
StorageImpl* parentStorage; /* Reference to the parent storage */
|
||||||
ULONG firstPropertyNode; /* Index of the root of the storage to enumerate */
|
ULONG firstPropertyNode; /* Index of the root of the storage to enumerate */
|
||||||
|
|
||||||
|
@ -487,7 +487,7 @@ struct StgStreamImpl
|
||||||
/*
|
/*
|
||||||
* Reference count
|
* Reference count
|
||||||
*/
|
*/
|
||||||
ULONG ref;
|
LONG ref;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Storage that is the parent(owner) of the stream
|
* Storage that is the parent(owner) of the stream
|
||||||
|
|
|
@ -96,15 +96,13 @@ struct stub_manager *new_stub_manager(APARTMENT *apt, IUnknown *object, MSHLFLAG
|
||||||
return sm;
|
return sm;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* m->apt->cs must be held on entry to this function */
|
/* caller must remove stub manager from apartment prior to calling this function */
|
||||||
static void stub_manager_delete(struct stub_manager *m)
|
static void stub_manager_delete(struct stub_manager *m)
|
||||||
{
|
{
|
||||||
struct list *cursor;
|
struct list *cursor;
|
||||||
|
|
||||||
TRACE("destroying %p (oid=%s)\n", m, wine_dbgstr_longlong(m->oid));
|
TRACE("destroying %p (oid=%s)\n", m, wine_dbgstr_longlong(m->oid));
|
||||||
|
|
||||||
list_remove(&m->entry);
|
|
||||||
|
|
||||||
/* release every ifstub */
|
/* release every ifstub */
|
||||||
while ((cursor = list_head(&m->ifstubs)))
|
while ((cursor = list_head(&m->ifstubs)))
|
||||||
{
|
{
|
||||||
|
@ -230,9 +228,15 @@ ULONG stub_manager_int_release(struct stub_manager *This)
|
||||||
|
|
||||||
TRACE("after %ld\n", refs);
|
TRACE("after %ld\n", refs);
|
||||||
|
|
||||||
|
/* remove from apartment so no other thread can access it... */
|
||||||
|
if (!refs)
|
||||||
|
list_remove(&This->entry);
|
||||||
|
|
||||||
|
LeaveCriticalSection(&apt->cs);
|
||||||
|
|
||||||
|
/* ... so now we can delete it without being inside the apartment critsec */
|
||||||
if (!refs)
|
if (!refs)
|
||||||
stub_manager_delete(This);
|
stub_manager_delete(This);
|
||||||
LeaveCriticalSection(&apt->cs);
|
|
||||||
|
|
||||||
return refs;
|
return refs;
|
||||||
}
|
}
|
||||||
|
@ -336,7 +340,7 @@ HRESULT ipid_to_stub_manager(const IPID *ipid, APARTMENT **stub_apt, struct stub
|
||||||
*stub_apt = apartment_findfromtid(ipid->Data2);
|
*stub_apt = apartment_findfromtid(ipid->Data2);
|
||||||
if (!*stub_apt)
|
if (!*stub_apt)
|
||||||
{
|
{
|
||||||
ERR("Couldn't find apartment corresponding to TID 0x%04x\n", ipid->Data2);
|
TRACE("Couldn't find apartment corresponding to TID 0x%04x\n", ipid->Data2);
|
||||||
return RPC_E_INVALID_OBJECT;
|
return RPC_E_INVALID_OBJECT;
|
||||||
}
|
}
|
||||||
*stubmgr_ret = get_stub_manager_from_ipid(*stub_apt, ipid);
|
*stubmgr_ret = get_stub_manager_from_ipid(*stub_apt, ipid);
|
||||||
|
@ -411,7 +415,7 @@ struct ifstub *stub_manager_new_ifstub(struct stub_manager *m, IRpcStubBuffer *s
|
||||||
stub->stubbuffer = sb;
|
stub->stubbuffer = sb;
|
||||||
if (sb) IRpcStubBuffer_AddRef(sb);
|
if (sb) IRpcStubBuffer_AddRef(sb);
|
||||||
|
|
||||||
/* no need to ref this, same object as sb */
|
IUnknown_AddRef(iptr);
|
||||||
stub->iface = iptr;
|
stub->iface = iptr;
|
||||||
|
|
||||||
stub->iid = *iid;
|
stub->iid = *iid;
|
||||||
|
@ -477,7 +481,9 @@ BOOL stub_manager_notify_unmarshal(struct stub_manager *m)
|
||||||
default:
|
default:
|
||||||
WARN("object OID %s already unmarshaled\n",
|
WARN("object OID %s already unmarshaled\n",
|
||||||
wine_dbgstr_longlong(m->oid));
|
wine_dbgstr_longlong(m->oid));
|
||||||
ret = FALSE;
|
ret = TRUE; /* FIXME: the state management should be per-ifstub, so
|
||||||
|
* it is disabled at the moment so that InstallShield
|
||||||
|
* works again */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -505,9 +511,9 @@ void stub_manager_release_marshal_data(struct stub_manager *m, ULONG refs)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
stub_manager_ext_release(m, refs);
|
|
||||||
|
|
||||||
LeaveCriticalSection(&m->lock);
|
LeaveCriticalSection(&m->lock);
|
||||||
|
|
||||||
|
stub_manager_ext_release(m, refs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* is an ifstub table marshaled? */
|
/* is an ifstub table marshaled? */
|
||||||
|
@ -539,7 +545,7 @@ const IID IID_IRemUnknown = { 0x00000131, 0, 0, {0xc0, 0, 0, 0, 0, 0, 0, 0x46} }
|
||||||
typedef struct rem_unknown
|
typedef struct rem_unknown
|
||||||
{
|
{
|
||||||
const IRemUnknownVtbl *lpVtbl;
|
const IRemUnknownVtbl *lpVtbl;
|
||||||
ULONG refs;
|
LONG refs;
|
||||||
} RemUnknown;
|
} RemUnknown;
|
||||||
|
|
||||||
static const IRemUnknownVtbl RemUnknown_Vtbl;
|
static const IRemUnknownVtbl RemUnknown_Vtbl;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue