mirror of
https://github.com/reactos/reactos.git
synced 2025-04-20 20:36:35 +00:00
- Sync ole32, oleaut32, olesvr32 with Wine head
svn path=/trunk/; revision=40000
This commit is contained in:
parent
1b0fc53030
commit
d45772c95a
16 changed files with 16 additions and 3786 deletions
|
@ -934,6 +934,7 @@ static HRESULT COMPOBJ_DllList_Add(LPCWSTR library_name, OpenDll **ret)
|
|||
}
|
||||
else
|
||||
{
|
||||
HeapFree(GetProcessHeap(), 0, entry);
|
||||
hr = E_OUTOFMEMORY;
|
||||
FreeLibrary(hLibrary);
|
||||
}
|
||||
|
@ -998,7 +999,6 @@ static void COMPOBJ_DllList_Free(void)
|
|||
|
||||
/******************************************************************************
|
||||
* CoBuildVersion [OLE32.@]
|
||||
* CoBuildVersion [COMPOBJ.1]
|
||||
*
|
||||
* Gets the build version of the DLL.
|
||||
*
|
||||
|
@ -1317,7 +1317,6 @@ HRESULT WINAPI CoDisconnectObject( LPUNKNOWN lpUnk, DWORD reserved )
|
|||
|
||||
/******************************************************************************
|
||||
* CoCreateGuid [OLE32.@]
|
||||
* CoCreateGuid [COMPOBJ.73]
|
||||
*
|
||||
* Simply forwards to UuidCreate in RPCRT4.
|
||||
*
|
||||
|
@ -1430,40 +1429,6 @@ HRESULT WINAPI CLSIDFromString(LPOLESTR idstr, CLSID *id )
|
|||
return ret;
|
||||
}
|
||||
|
||||
/* Converts a GUID into the respective string representation. */
|
||||
HRESULT WINE_StringFromCLSID(
|
||||
const CLSID *id, /* [in] GUID to be converted */
|
||||
LPSTR idstr /* [out] pointer to buffer to contain converted guid */
|
||||
) {
|
||||
static const char hex[] = "0123456789ABCDEF";
|
||||
char *s;
|
||||
int i;
|
||||
|
||||
if (!id)
|
||||
{ ERR("called with id=Null\n");
|
||||
*idstr = 0x00;
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
sprintf(idstr, "{%08X-%04X-%04X-%02X%02X-",
|
||||
id->Data1, id->Data2, id->Data3,
|
||||
id->Data4[0], id->Data4[1]);
|
||||
s = &idstr[25];
|
||||
|
||||
/* 6 hex bytes */
|
||||
for (i = 2; i < 8; i++) {
|
||||
*s++ = hex[id->Data4[i]>>4];
|
||||
*s++ = hex[id->Data4[i] & 0xf];
|
||||
}
|
||||
|
||||
*s++ = '}';
|
||||
*s++ = '\0';
|
||||
|
||||
TRACE("%p->%s\n", id, idstr);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* StringFromCLSID [OLE32.@]
|
||||
|
@ -1485,25 +1450,17 @@ HRESULT WINE_StringFromCLSID(
|
|||
*/
|
||||
HRESULT WINAPI StringFromCLSID(REFCLSID id, LPOLESTR *idstr)
|
||||
{
|
||||
char buf[80];
|
||||
HRESULT ret;
|
||||
LPMALLOC mllc;
|
||||
HRESULT ret;
|
||||
LPMALLOC mllc;
|
||||
|
||||
if ((ret = CoGetMalloc(0,&mllc)))
|
||||
return ret;
|
||||
|
||||
ret=WINE_StringFromCLSID(id,buf);
|
||||
if (ret == S_OK) {
|
||||
DWORD len = MultiByteToWideChar( CP_ACP, 0, buf, -1, NULL, 0 );
|
||||
*idstr = IMalloc_Alloc( mllc, len * sizeof(WCHAR) );
|
||||
MultiByteToWideChar( CP_ACP, 0, buf, -1, *idstr, len );
|
||||
}
|
||||
return ret;
|
||||
if ((ret = CoGetMalloc(0,&mllc))) return ret;
|
||||
if (!(*idstr = IMalloc_Alloc( mllc, CHARS_IN_GUID * sizeof(WCHAR) ))) return E_OUTOFMEMORY;
|
||||
StringFromGUID2( id, *idstr, CHARS_IN_GUID );
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* StringFromGUID2 [OLE32.@]
|
||||
* StringFromGUID2 [COMPOBJ.76]
|
||||
*
|
||||
* Modified version of StringFromCLSID that allows you to specify max
|
||||
* buffer size.
|
||||
|
@ -1519,11 +1476,15 @@ HRESULT WINAPI StringFromCLSID(REFCLSID id, LPOLESTR *idstr)
|
|||
*/
|
||||
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
|
||||
{
|
||||
char xguid[80];
|
||||
|
||||
if (WINE_StringFromCLSID(id,xguid))
|
||||
return 0;
|
||||
return MultiByteToWideChar( CP_ACP, 0, xguid, -1, str, cmax );
|
||||
static const WCHAR formatW[] = { '{','%','0','8','X','-','%','0','4','X','-',
|
||||
'%','0','4','X','-','%','0','2','X','%','0','2','X','-',
|
||||
'%','0','2','X','%','0','2','X','%','0','2','X','%','0','2','X',
|
||||
'%','0','2','X','%','0','2','X','}',0 };
|
||||
if (cmax < CHARS_IN_GUID) return 0;
|
||||
sprintfW( str, formatW, id->Data1, id->Data2, id->Data3,
|
||||
id->Data4[0], id->Data4[1], id->Data4[2], id->Data4[3],
|
||||
id->Data4[4], id->Data4[5], id->Data4[6], id->Data4[7] );
|
||||
return CHARS_IN_GUID;
|
||||
}
|
||||
|
||||
/* open HKCR\\CLSID\\{string form of clsid}\\{keyname} key */
|
||||
|
@ -2683,7 +2644,6 @@ void WINAPI CoFreeUnusedLibrariesEx(DWORD dwUnloadDelay, DWORD dwReserved)
|
|||
|
||||
/***********************************************************************
|
||||
* CoFreeUnusedLibraries [OLE32.@]
|
||||
* CoFreeUnusedLibraries [COMPOBJ.17]
|
||||
*
|
||||
* Frees any unused libraries. Unused are identified as those that return
|
||||
* S_OK from their DllCanUnloadNow function.
|
||||
|
@ -2701,7 +2661,6 @@ void WINAPI CoFreeUnusedLibraries(void)
|
|||
|
||||
/***********************************************************************
|
||||
* CoFileTimeNow [OLE32.@]
|
||||
* CoFileTimeNow [COMPOBJ.82]
|
||||
*
|
||||
* Retrieves the current time in FILETIME format.
|
||||
*
|
||||
|
@ -2979,7 +2938,6 @@ done:
|
|||
|
||||
/******************************************************************************
|
||||
* CoGetCurrentProcess [OLE32.@]
|
||||
* CoGetCurrentProcess [COMPOBJ.34]
|
||||
*
|
||||
* Gets the current process ID.
|
||||
*
|
||||
|
|
|
@ -1,218 +0,0 @@
|
|||
1 pascal CoBuildVersion() CoBuildVersion
|
||||
2 pascal CoInitialize(long) CoInitialize16
|
||||
3 pascal CoUninitialize() CoUninitialize16
|
||||
4 pascal CoGetMalloc(long ptr) CoGetMalloc16
|
||||
5 pascal CoRegisterClassObject(ptr ptr long long ptr) CoRegisterClassObject16
|
||||
6 pascal CoRevokeClassObject(long) CoRevokeClassObject16
|
||||
7 pascal CoGetClassObject(ptr long ptr ptr ptr) CoGetClassObject16
|
||||
8 stub COMARSHALINTERFACE
|
||||
9 stub COUNMARSHALINTERFACE
|
||||
10 stub COLOADLIBRARY
|
||||
11 stub COFREELIBRARY
|
||||
12 stub COFREEALLLIBRARIES
|
||||
13 pascal CoCreateInstance(ptr ptr long ptr ptr) CoCreateInstance16
|
||||
14 stub STRINGFROMIID
|
||||
15 pascal CoDisconnectObject(ptr long) CoDisconnectObject16
|
||||
16 stub CORELEASEMARSHALDATA
|
||||
17 pascal -ret16 CoFreeUnusedLibraries() CoFreeUnusedLibraries
|
||||
18 pascal -ret16 IsEqualGUID(ptr ptr) IsEqualGUID16
|
||||
19 pascal StringFromCLSID(ptr ptr) StringFromCLSID16
|
||||
20 pascal CLSIDFromString(str ptr) CLSIDFromString16
|
||||
21 stub ISVALIDPTRIN
|
||||
22 stub ISVALIDPTROUT
|
||||
23 pascal IsValidInterface(segptr) IsValidInterface16
|
||||
24 stub ISVALIDIID
|
||||
25 stub RESULTFROMSCODE
|
||||
26 stub GETSCODE
|
||||
27 pascal CoRegisterMessageFilter(ptr ptr) CoRegisterMessageFilter16
|
||||
28 stub COISHANDLERCONNECTED
|
||||
29 stub SHRADDREF
|
||||
30 pascal -ret16 CoFileTimeToDosDateTime(ptr ptr ptr) CoFileTimeToDosDateTime16
|
||||
31 pascal -ret16 CoDosDateTimeToFileTime(word word ptr) CoDosDateTimeToFileTime16
|
||||
32 stub COMARSHALHRESULT
|
||||
33 stub COUNMARSHALHRESULT
|
||||
34 pascal CoGetCurrentProcess() CoGetCurrentProcess
|
||||
35 stub SHRCREATE
|
||||
36 stub COISOLE1CLASS
|
||||
37 stub _GUID_NULL
|
||||
38 stub _IID_IUNKNOWN
|
||||
39 stub _IID_ICLASSFACTORY
|
||||
40 stub _IID_IMALLOC
|
||||
41 stub _IID_IMARSHAL
|
||||
42 stub _IID_IRPCCHANNEL
|
||||
43 stub _IID_IRPCSTUB
|
||||
44 stub _IID_ISTUBMANAGER
|
||||
45 stub _IID_IRPCPROXY
|
||||
46 stub _IID_IPROXYMANAGER
|
||||
47 stub _IID_IPSFACTORY
|
||||
48 stub _IID_ILOCKBYTES
|
||||
49 stub _IID_ISTORAGE
|
||||
50 stub _IID_ISTREAM
|
||||
51 stub _IID_IENUMSTATSTG
|
||||
52 stub _IID_IBINDCTX
|
||||
53 stub _IID_IMONIKER
|
||||
54 stub _IID_IRUNNINGOBJECTTABLE
|
||||
55 stub _IID_IINTERNALMONIKER
|
||||
56 stub _IID_IROOTSTORAGE
|
||||
57 stub _IID_IDFRESERVED1
|
||||
58 stub _IID_IDFRESERVED2
|
||||
59 stub _IID_IDFRESERVED3
|
||||
60 stub _IID_IMESSAGEFILTER
|
||||
61 pascal CLSIDFromProgID(str ptr) CLSIDFromProgID16
|
||||
62 pascal ProgIDFromCLSID(ptr ptr) ProgIDFromCLSID16
|
||||
63 pascal CoLockObjectExternal(segptr word word) CoLockObjectExternal16
|
||||
64 stub _CLSID_STDMARSHAL
|
||||
65 stub COGETTREATASCLASS
|
||||
66 stub COTREATASCLASS
|
||||
67 stub COGETSTANDARDMARSHAL
|
||||
68 stub PROPAGATERESULT
|
||||
69 stub IIDFROMSTRING
|
||||
70 stub _IID_ISTDMARSHALINFO
|
||||
71 pascal CoCreateStandardMalloc(long ptr) CoCreateStandardMalloc16
|
||||
72 stub _IID_IEXTERNALCONNECTION
|
||||
73 pascal CoCreateGuid(ptr) CoCreateGuid
|
||||
75 stub FNASSERT
|
||||
76 pascal StringFromGUID2(ptr ptr word) StringFromGUID2
|
||||
77 stub COGETCLASSEXT
|
||||
78 stub OLE1CLASSFROMCLSID2
|
||||
79 stub CLSIDFROMOLE1CLASS
|
||||
80 stub COOPENCLASSKEY
|
||||
81 stub GUIDFROMSTRING
|
||||
82 pascal CoFileTimeNow(ptr) CoFileTimeNow
|
||||
83 stub REMALLOCOID
|
||||
84 stub REMFREEOID
|
||||
85 stub REMCREATEREMOTEHANDLER
|
||||
86 stub REMCONNECTTOOBJECT
|
||||
87 stub REMGETINFOFORCID
|
||||
88 stub LRPCCALL
|
||||
89 stub LRPCDISPATCH
|
||||
90 stub LRPCREGISTERMONITOR
|
||||
91 stub LRPCREVOKEMONITOR
|
||||
92 stub LRPCGETTHREADWINDOW
|
||||
93 stub TIMERCALLBACKPROC
|
||||
94 pascal LookupETask(ptr ptr) LookupETask16
|
||||
95 pascal -ret16 SetETask(word ptr) SetETask16
|
||||
96 stub LRPCFREEMONITORDATA
|
||||
97 stub REMLOOKUPSHUNK
|
||||
98 stub SHRGETSIZE
|
||||
99 stub CALLTHKMGRUNINITIALIZE
|
||||
100 stub ??0CARRAYFVALUE@@REC@KI@Z
|
||||
101 stub ??1CARRAYFVALUE@@REC@XZ
|
||||
102 stub ?ASSERTVALID@CARRAYFVALUE@@RFCXXZ
|
||||
103 stub ?FREEEXTRA@CARRAYFVALUE@@RECXXZ
|
||||
104 stub ?_GETAT@CARRAYFVALUE@@RFCPEXH@Z
|
||||
105 stub ?GETSIZE@CARRAYFVALUE@@RFCHXZ
|
||||
106 stub ?REMOVEALL@CARRAYFVALUE@@RECXXZ
|
||||
107 stub SHRDESTROY
|
||||
108 stub ?INDEXOF@CARRAYFVALUE@@RECHPEXII@Z
|
||||
109 stub ?INSERTAT@CARRAYFVALUE@@RECHHPEXH@Z
|
||||
110 stub COSETSTATE
|
||||
111 stub ?REMOVEAT@CARRAYFVALUE@@RECXHH@Z
|
||||
112 stub ?SETAT@CARRAYFVALUE@@RECXHPEX@Z
|
||||
113 stub ?SETATGROW@CARRAYFVALUE@@RECHHPEX@Z
|
||||
114 stub ?SETSIZE@CARRAYFVALUE@@RECHHH@Z
|
||||
115 pascal CoGetState(ptr) CoGetState16
|
||||
116 pascal DllEntryPoint(long word word word long word) COMPOBJ_DllEntryPoint
|
||||
117 stub ?RELEASE@CSTDMALLOC@@VEAKXZ
|
||||
118 stub ?ALLOC@CSTDMALLOC@@VEAPEXK@Z
|
||||
119 stub SHRRELEASE
|
||||
120 stub ?GETASSOCAT@CMAPKEYTOVALUE@@BFCPEUCASSOC@1@PEXIAEI@Z
|
||||
121 stub ?SETASSOCKEY@CMAPKEYTOVALUE@@BFCHPEUCASSOC@1@PEXI@Z
|
||||
122 stub ??1CMAPKEYTOVALUE@@REC@XZ
|
||||
123 stub ?GETASSOCKEYPTR@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEPEXPEI@Z
|
||||
124 stub ?NEWASSOC@CMAPKEYTOVALUE@@BECPEUCASSOC@1@IPEXI0@Z
|
||||
125 stub ?SIZEASSOC@CMAPKEYTOVALUE@@BFCIXZ
|
||||
126 stub ?FREEASSOC@CMAPKEYTOVALUE@@BECXPEUCASSOC@1@@Z
|
||||
127 stub ?GETSTARTPOSITION@CMAPKEYTOVALUE@@RFCPEXXZ
|
||||
128 stub ?GETNEXTASSOC@CMAPKEYTOVALUE@@RFCXPEPEXPEXPEI1@Z
|
||||
129 stub ?COMPAREASSOCKEY@CMAPKEYTOVALUE@@BFCHPEUCASSOC@1@PEXI@Z
|
||||
130 stub ?REMOVEHKEY@CMAPKEYTOVALUE@@RECHK@Z
|
||||
131 stub ?GETHKEY@CMAPKEYTOVALUE@@RFCKPEXI@Z
|
||||
132 stub ?GETCOUNT@CMAPKEYTOVALUE@@RFCHXZ
|
||||
133 stub ?LOOKUP@CMAPKEYTOVALUE@@RFCHPEXI0@Z
|
||||
134 stub ?GETASSOCVALUE@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEX@Z
|
||||
135 stub ?REMOVEKEY@CMAPKEYTOVALUE@@RECHPEXI@Z
|
||||
136 stub ?REMOVEALL@CMAPKEYTOVALUE@@RECXXZ
|
||||
137 stub SHRALLOC
|
||||
138 stub ?FREEASSOCKEY@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@@Z
|
||||
139 stub ?SETAT@CMAPKEYTOVALUE@@RECHPEXI0@Z
|
||||
140 stub ?LOOKUPHKEY@CMAPKEYTOVALUE@@RFCHKPEX@Z
|
||||
141 stub ?ASSERTVALID@CMAPKEYTOVALUE@@RFCXXZ
|
||||
142 stub ?SETASSOCVALUE@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEX@Z
|
||||
143 stub ?SETATHKEY@CMAPKEYTOVALUE@@RECHKPEX@Z
|
||||
144 stub ??0CMAPKEYTOVALUE@@REC@KIIHP7CIPEXI@ZI@Z
|
||||
145 stub ?INITHASHTABLE@CMAPKEYTOVALUE@@BECHXZ
|
||||
146 stub ?GETASSOCVALUEPTR@CMAPKEYTOVALUE@@BFCXPEUCASSOC@1@PEPEX@Z
|
||||
147 stub ?LOOKUPADD@CMAPKEYTOVALUE@@RFCHPEXI0@Z
|
||||
148 stub MKVDEFAULTHASHKEY
|
||||
149 stub DELETE16
|
||||
150 stub COMEMCTXOF
|
||||
151 pascal CoMemAlloc(long long long)
|
||||
152 stub COMEMFREE
|
||||
153 stub SHRREALLOC
|
||||
154 stub ___EXPORTEDSTUB
|
||||
155 stub LRPCREGISTERWIN32SMONITOR
|
||||
156 stub MYREMGETINFOFORCID
|
||||
157 stub SHRFREE
|
||||
158 stub OPNEW16
|
||||
159 stub ADDCOINFO
|
||||
160 stub CORUNMODALLOOP
|
||||
161 stub COHANDLEINCOMINGCALL
|
||||
162 stub COSETACKSTATE
|
||||
163 stub SHRDIDALLOC
|
||||
164 stub ?GETAT@CARRAYFVALUE@@RFCPEXH@Z
|
||||
165 stub ?GETUPPERBOUND@CARRAYFVALUE@@RFCHXZ
|
||||
166 stub OPDELETE16
|
||||
167 stub ?GETSIZEVALUE@CARRAYFVALUE@@RFCHXZ
|
||||
168 stub ?PROXY1632ADDREF@@ZAKPEVCPROXY1632@@@Z
|
||||
# FIXME: 169 is a duplicate of 97
|
||||
169 stub REMLOOKUPSHUNK_dup
|
||||
170 stub ?ISEMPTY@CMAPKEYTOVALUE@@RFCHXZ
|
||||
171 stub ?FREE@CSTDMALLOC@@VEAXPEX@Z
|
||||
172 stub CALLTHKMGRINITIALIZE
|
||||
173 stub ?REALLOC@CSTDMALLOC@@VEAPEXPEXK@Z
|
||||
174 stub ?SM16RHQI@@ZAPEXPEVCSM16RELEASEHANDLER@@AFUGUID@@PEPEX@Z
|
||||
175 stub ?PROXY1632METHOD10@@ZAKPEVCPROXY1632@@@Z
|
||||
# FIXME: 176 is a duplicate of 154
|
||||
176 stub ___EXPORTEDSTUB_dup
|
||||
177 stub ?PROXY1632METHOD20@@ZAKPEVCPROXY1632@@@Z
|
||||
178 stub ?PROXY1632METHOD11@@ZAKPEVCPROXY1632@@@Z
|
||||
179 stub ?PROXY1632METHOD30@@ZAKPEVCPROXY1632@@@Z
|
||||
180 stub ?PROXY1632METHOD21@@ZAKPEVCPROXY1632@@@Z
|
||||
181 stub ?PROXY1632METHOD12@@ZAKPEVCPROXY1632@@@Z
|
||||
182 stub ?PROXY1632METHOD31@@ZAKPEVCPROXY1632@@@Z
|
||||
183 stub ?PROXY1632METHOD22@@ZAKPEVCPROXY1632@@@Z
|
||||
184 stub ?PROXY1632METHOD13@@ZAKPEVCPROXY1632@@@Z
|
||||
185 stub ?GETSIZE@CSTDMALLOC@@VEAKPEX@Z
|
||||
186 stub ?PROXY1632METHOD23@@ZAKPEVCPROXY1632@@@Z
|
||||
187 stub ?PROXY1632METHOD14@@ZAKPEVCPROXY1632@@@Z
|
||||
188 stub ?PROXY1632METHOD24@@ZAKPEVCPROXY1632@@@Z
|
||||
189 stub ?PROXY1632METHOD15@@ZAKPEVCPROXY1632@@@Z
|
||||
190 stub ?PROXY1632METHOD25@@ZAKPEVCPROXY1632@@@Z
|
||||
191 stub ?PROXY1632METHOD16@@ZAKPEVCPROXY1632@@@Z
|
||||
192 stub ?PROXY1632METHOD26@@ZAKPEVCPROXY1632@@@Z
|
||||
193 stub ?PROXY1632METHOD17@@ZAKPEVCPROXY1632@@@Z
|
||||
194 stub ?PROXY1632METHOD27@@ZAKPEVCPROXY1632@@@Z
|
||||
195 stub ?PROXY1632METHOD18@@ZAKPEVCPROXY1632@@@Z
|
||||
196 stub ?PROXY1632METHOD28@@ZAKPEVCPROXY1632@@@Z
|
||||
197 stub ?ADDREF@CSTDMALLOC@@VEAKXZ
|
||||
198 stub ?PROXY1632METHOD19@@ZAKPEVCPROXY1632@@@Z
|
||||
199 stub ?PROXY1632METHOD29@@ZAKPEVCPROXY1632@@@Z
|
||||
200 stub CALL32INITIALIZE
|
||||
201 pascal CALLOBJECTINWOW(ptr ptr) CallObjectInWOW
|
||||
203 stub CALLOBJECTINWOWCHECKINIT
|
||||
204 stub CALLOBJECTINWOWCHECKTHKMGR
|
||||
205 stub CONVERTHR1632
|
||||
206 stub CONVERTHR3216
|
||||
207 stub ADDAPPCOMPATFLAG
|
||||
|
||||
# WINE internal relays (for Win16 interfaces)
|
||||
500 cdecl IMalloc16_QueryInterface(ptr ptr ptr) IMalloc16_fnQueryInterface
|
||||
501 cdecl IMalloc16_AddRef(ptr) IMalloc16_fnAddRef
|
||||
502 cdecl IMalloc16_Release(ptr) IMalloc16_fnRelease
|
||||
503 cdecl IMalloc16_Alloc(ptr long) IMalloc16_fnAlloc
|
||||
504 cdecl IMalloc16_Realloc(ptr segptr long) IMalloc16_fnRealloc
|
||||
505 cdecl IMalloc16_Free(ptr segptr) IMalloc16_fnFree
|
||||
506 cdecl IMalloc16_GetSize(ptr segptr) IMalloc16_fnGetSize
|
||||
507 cdecl IMalloc16_DidAlloc(ptr segptr) IMalloc16_fnDidAlloc
|
||||
508 cdecl IMalloc16_HeapMinimize(ptr) IMalloc16_fnHeapMinimize
|
|
@ -196,9 +196,6 @@ extern void* StdGlobalInterfaceTable_Construct(void);
|
|||
extern HRESULT StdGlobalInterfaceTable_GetFactory(LPVOID *ppv);
|
||||
extern void* StdGlobalInterfaceTableInstance;
|
||||
|
||||
/* FIXME: these shouldn't be needed, except for 16-bit functions */
|
||||
extern HRESULT WINE_StringFromCLSID(const CLSID *id,LPSTR idstr);
|
||||
|
||||
HRESULT COM_OpenKeyForCLSID(REFCLSID clsid, LPCWSTR keyname, REGSAM access, HKEY *key);
|
||||
HRESULT COM_OpenKeyForAppIdFromCLSID(REFCLSID clsid, REGSAM access, HKEY *subkey);
|
||||
HRESULT MARSHAL_GetStandardMarshalCF(LPVOID *ppv);
|
||||
|
|
|
@ -1,526 +0,0 @@
|
|||
/*
|
||||
* Global memory implementation of ILockBytes.
|
||||
*
|
||||
* Copyright 1999 Thuy Nguyen
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
|
||||
#define NONAMELESSUNION
|
||||
#define NONAMELESSSTRUCT
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wine/winbase16.h"
|
||||
#include "winuser.h"
|
||||
#include "objbase.h"
|
||||
#include "ole2.h"
|
||||
#include "winerror.h"
|
||||
|
||||
#include "ifs.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(ole);
|
||||
|
||||
/******************************************************************************
|
||||
* HGLOBALLockBytesImpl16 definition.
|
||||
*
|
||||
* This class implements the ILockBytes interface and represents a byte array
|
||||
* object supported by an HGLOBAL pointer.
|
||||
*/
|
||||
struct HGLOBALLockBytesImpl16
|
||||
{
|
||||
/*
|
||||
* Needs to be the first item in the struct
|
||||
* since we want to cast this in an ILockBytes pointer
|
||||
*/
|
||||
const ILockBytes16Vtbl *lpVtbl;
|
||||
LONG ref;
|
||||
|
||||
/*
|
||||
* Support for the LockBytes object
|
||||
*/
|
||||
HGLOBAL16 supportHandle;
|
||||
|
||||
/*
|
||||
* This flag is TRUE if the HGLOBAL is destroyed when the object
|
||||
* is finally released.
|
||||
*/
|
||||
BOOL deleteOnRelease;
|
||||
/*
|
||||
* Helper variable that contains the size of the byte array
|
||||
*/
|
||||
ULARGE_INTEGER byteArraySize;
|
||||
};
|
||||
|
||||
typedef struct HGLOBALLockBytesImpl16 HGLOBALLockBytesImpl16;
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* HGLOBALLockBytesImpl16 implementation
|
||||
*
|
||||
*/
|
||||
|
||||
/******************************************************************************
|
||||
* This is the constructor for the HGLOBALLockBytesImpl16 class.
|
||||
*
|
||||
* Params:
|
||||
* hGlobal - Handle that will support the stream. can be NULL.
|
||||
* fDeleteOnRelease - Flag set to TRUE if the HGLOBAL16 will be released
|
||||
* when the IStream object is destroyed.
|
||||
*/
|
||||
static HGLOBALLockBytesImpl16*
|
||||
HGLOBALLockBytesImpl16_Construct(HGLOBAL16 hGlobal,
|
||||
BOOL16 fDeleteOnRelease)
|
||||
{
|
||||
HGLOBALLockBytesImpl16* newLockBytes;
|
||||
|
||||
static ILockBytes16Vtbl vt16;
|
||||
static SEGPTR msegvt16;
|
||||
HMODULE16 hcomp = GetModuleHandle16("OLE2");
|
||||
|
||||
|
||||
TRACE("(%x,%d)\n",hGlobal,fDeleteOnRelease);
|
||||
newLockBytes = HeapAlloc(GetProcessHeap(), 0, sizeof(HGLOBALLockBytesImpl16));
|
||||
if (newLockBytes == NULL)
|
||||
return NULL;
|
||||
|
||||
/*
|
||||
* Set up the virtual function table and reference count.
|
||||
*/
|
||||
if (!msegvt16)
|
||||
{
|
||||
#define VTENT(x) vt16.x = (void*)GetProcAddress16(hcomp,"HGLOBALLockBytesImpl16_"#x);assert(vt16.x)
|
||||
VTENT(QueryInterface);
|
||||
VTENT(AddRef);
|
||||
VTENT(Release);
|
||||
VTENT(ReadAt);
|
||||
VTENT(WriteAt);
|
||||
VTENT(Flush);
|
||||
VTENT(SetSize);
|
||||
VTENT(LockRegion);
|
||||
VTENT(UnlockRegion);
|
||||
#undef VTENT
|
||||
msegvt16 = MapLS( &vt16 );
|
||||
}
|
||||
newLockBytes->lpVtbl = (const ILockBytes16Vtbl*)msegvt16;
|
||||
newLockBytes->ref = 0;
|
||||
/*
|
||||
* Initialize the support.
|
||||
*/
|
||||
newLockBytes->supportHandle = hGlobal;
|
||||
newLockBytes->deleteOnRelease = fDeleteOnRelease;
|
||||
|
||||
/*
|
||||
* This method will allocate a handle if one is not supplied.
|
||||
*/
|
||||
if (newLockBytes->supportHandle == 0)
|
||||
newLockBytes->supportHandle = GlobalAlloc16(GMEM_MOVEABLE | GMEM_NODISCARD, 0);
|
||||
|
||||
/*
|
||||
* Initialize the size of the array to the size of the handle.
|
||||
*/
|
||||
newLockBytes->byteArraySize.u.HighPart = 0;
|
||||
newLockBytes->byteArraySize.u.LowPart = GlobalSize16(
|
||||
newLockBytes->supportHandle);
|
||||
|
||||
return (HGLOBALLockBytesImpl16*)MapLS(newLockBytes);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* This is the destructor of the HGLOBALStreamImpl class.
|
||||
*
|
||||
* This method will clean-up all the resources used-up by the given
|
||||
* HGLOBALLockBytesImpl16 class. The pointer passed-in to this function will be
|
||||
* freed and will not be valid anymore.
|
||||
*/
|
||||
static void HGLOBALLockBytesImpl16_Destroy(HGLOBALLockBytesImpl16* This)
|
||||
{
|
||||
TRACE("()\n");
|
||||
/*
|
||||
* Release the HGlobal if the constructor asked for that.
|
||||
*/
|
||||
if (This->deleteOnRelease)
|
||||
{
|
||||
GlobalFree16(This->supportHandle);
|
||||
This->supportHandle = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Finally, free the memory used-up by the class.
|
||||
*/
|
||||
HeapFree(GetProcessHeap(), 0, This);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* This implements the IUnknown method AddRef for this
|
||||
* class
|
||||
*/
|
||||
ULONG CDECL 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
|
||||
* class
|
||||
*/
|
||||
HRESULT CDECL HGLOBALLockBytesImpl16_QueryInterface(
|
||||
ILockBytes16* iface, /* [in] SEGPTR */
|
||||
REFIID riid, /* [in] */
|
||||
void** ppvObject) /* [out][iid_is] (ptr to SEGPTR!) */
|
||||
{
|
||||
HGLOBALLockBytesImpl16* const This = MapSL((SEGPTR)iface);
|
||||
|
||||
TRACE("(%p,%s,%p)\n",iface,debugstr_guid(riid),ppvObject);
|
||||
/*
|
||||
* Perform a sanity check on the parameters.
|
||||
*/
|
||||
if (ppvObject==0)
|
||||
return E_INVALIDARG;
|
||||
|
||||
/*
|
||||
* Initialize the return parameter.
|
||||
*/
|
||||
*ppvObject = 0;
|
||||
/*
|
||||
* Compare the riid with the interface IDs implemented by this object.
|
||||
*/
|
||||
if ( !memcmp(&IID_IUnknown, riid, sizeof(IID_IUnknown)) ||
|
||||
!memcmp(&IID_ILockBytes, riid, sizeof(IID_ILockBytes))
|
||||
)
|
||||
*ppvObject = (void*)iface;
|
||||
|
||||
/*
|
||||
* Check that we obtained an interface.
|
||||
*/
|
||||
if ((*ppvObject)==0) {
|
||||
FIXME("Unknown IID %s\n", debugstr_guid(riid));
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Query Interface always increases the reference count by one when it is
|
||||
* successful
|
||||
*/
|
||||
HGLOBALLockBytesImpl16_AddRef((ILockBytes16*)This);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* This implements the IUnknown method Release for this
|
||||
* class
|
||||
*/
|
||||
ULONG CDECL HGLOBALLockBytesImpl16_Release(ILockBytes16* iface)
|
||||
{
|
||||
HGLOBALLockBytesImpl16* const This=(HGLOBALLockBytesImpl16*)iface;
|
||||
ULONG ref;
|
||||
|
||||
TRACE("(%p)\n",This);
|
||||
|
||||
ref = InterlockedDecrement(&This->ref);
|
||||
|
||||
/*
|
||||
* If the reference count goes down to 0, perform suicide.
|
||||
*/
|
||||
if (ref==0)
|
||||
HGLOBALLockBytesImpl16_Destroy(This);
|
||||
return ref;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* This method is part of the ILockBytes interface.
|
||||
*
|
||||
* It reads a block of information from the byte array at the specified
|
||||
* offset.
|
||||
*
|
||||
* See the documentation of ILockBytes for more info.
|
||||
*/
|
||||
HRESULT CDECL HGLOBALLockBytesImpl16_ReadAt(
|
||||
ILockBytes16* iface,
|
||||
ULARGE_INTEGER ulOffset, /* [in] */
|
||||
void* pv, /* [out][length_is][size_is] */
|
||||
ULONG cb, /* [in] */
|
||||
ULONG* pcbRead) /* [out] */
|
||||
{
|
||||
HGLOBALLockBytesImpl16* const This=(HGLOBALLockBytesImpl16*)iface;
|
||||
|
||||
void* supportBuffer;
|
||||
ULONG bytesReadBuffer = 0;
|
||||
ULONG bytesToReadFromBuffer;
|
||||
|
||||
TRACE("(%p,%d,%p,%d,%p)\n",This,ulOffset.u.LowPart,pv,cb,pcbRead);
|
||||
/*
|
||||
* If the caller is not interested in the number of bytes read,
|
||||
* we use another buffer to avoid "if" statements in the code.
|
||||
*/
|
||||
if (pcbRead == 0)
|
||||
pcbRead = &bytesReadBuffer;
|
||||
|
||||
/*
|
||||
* Make sure the offset is valid.
|
||||
*/
|
||||
if (ulOffset.u.LowPart > This->byteArraySize.u.LowPart)
|
||||
return E_FAIL;
|
||||
|
||||
/*
|
||||
* Using the known size of the array, calculate the number of bytes
|
||||
* to read.
|
||||
*/
|
||||
bytesToReadFromBuffer = min(This->byteArraySize.u.LowPart -
|
||||
ulOffset.u.LowPart, cb);
|
||||
|
||||
/*
|
||||
* Lock the buffer in position and copy the data.
|
||||
*/
|
||||
supportBuffer = GlobalLock16(This->supportHandle);
|
||||
|
||||
memcpy(pv,
|
||||
(char *) supportBuffer + ulOffset.u.LowPart,
|
||||
bytesToReadFromBuffer);
|
||||
|
||||
/*
|
||||
* Return the number of bytes read.
|
||||
*/
|
||||
*pcbRead = bytesToReadFromBuffer;
|
||||
|
||||
/*
|
||||
* Cleanup
|
||||
*/
|
||||
GlobalUnlock16(This->supportHandle);
|
||||
|
||||
/*
|
||||
* The function returns S_OK if the specified number of bytes were read
|
||||
* or the end of the array was reached.
|
||||
* It returns STG_E_READFAULT if the number of bytes to read does not equal
|
||||
* the number of bytes actually read.
|
||||
*/
|
||||
if(*pcbRead == cb)
|
||||
return S_OK;
|
||||
|
||||
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 CDECL HGLOBALLockBytesImpl16_SetSize(
|
||||
ILockBytes16* iface,
|
||||
ULARGE_INTEGER libNewSize) /* [in] */
|
||||
{
|
||||
HGLOBALLockBytesImpl16* const This=(HGLOBALLockBytesImpl16*)iface;
|
||||
HGLOBAL16 supportHandle;
|
||||
|
||||
TRACE("(%p,%d)\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.
|
||||
*
|
||||
* It writes the specified bytes at the specified offset.
|
||||
* position. If the array is too small, it will be resized.
|
||||
*
|
||||
* See the documentation of ILockBytes for more info.
|
||||
*/
|
||||
HRESULT CDECL HGLOBALLockBytesImpl16_WriteAt(
|
||||
ILockBytes16* iface,
|
||||
ULARGE_INTEGER ulOffset, /* [in] */
|
||||
const void* pv, /* [in][size_is] */
|
||||
ULONG cb, /* [in] */
|
||||
ULONG* pcbWritten) /* [out] */
|
||||
{
|
||||
HGLOBALLockBytesImpl16* const This=(HGLOBALLockBytesImpl16*)iface;
|
||||
|
||||
void* supportBuffer;
|
||||
ULARGE_INTEGER newSize;
|
||||
ULONG bytesWritten = 0;
|
||||
|
||||
TRACE("(%p,%d,%p,%d,%p)\n",This,ulOffset.u.LowPart,pv,cb,pcbWritten);
|
||||
/*
|
||||
* If the caller is not interested in the number of bytes written,
|
||||
* we use another buffer to avoid "if" statements in the code.
|
||||
*/
|
||||
if (pcbWritten == 0)
|
||||
pcbWritten = &bytesWritten;
|
||||
|
||||
if (cb == 0)
|
||||
return S_OK;
|
||||
|
||||
newSize.u.HighPart = 0;
|
||||
newSize.u.LowPart = ulOffset.u.LowPart + cb;
|
||||
|
||||
/*
|
||||
* Verify if we need to grow the stream
|
||||
*/
|
||||
if (newSize.u.LowPart > This->byteArraySize.u.LowPart)
|
||||
{
|
||||
/* grow stream */
|
||||
if (HGLOBALLockBytesImpl16_SetSize(iface, newSize) == STG_E_MEDIUMFULL)
|
||||
return STG_E_MEDIUMFULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Lock the buffer in position and copy the data.
|
||||
*/
|
||||
supportBuffer = GlobalLock16(This->supportHandle);
|
||||
|
||||
memcpy((char *) supportBuffer + ulOffset.u.LowPart, pv, cb);
|
||||
|
||||
/*
|
||||
* Return the number of bytes written.
|
||||
*/
|
||||
*pcbWritten = cb;
|
||||
|
||||
/*
|
||||
* Cleanup
|
||||
*/
|
||||
GlobalUnlock16(This->supportHandle);
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* This method is part of the ILockBytes interface.
|
||||
*
|
||||
* See the documentation of ILockBytes for more info.
|
||||
*/
|
||||
HRESULT CDECL HGLOBALLockBytesImpl16_Flush(ILockBytes16* iface)
|
||||
{
|
||||
TRACE("(%p)\n",iface);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* This method is part of the ILockBytes interface.
|
||||
*
|
||||
* The global memory implementation of ILockBytes does not support locking.
|
||||
*
|
||||
* See the documentation of ILockBytes for more info.
|
||||
*/
|
||||
HRESULT CDECL HGLOBALLockBytesImpl16_LockRegion(
|
||||
ILockBytes16* iface,
|
||||
ULARGE_INTEGER libOffset, /* [in] */
|
||||
ULARGE_INTEGER cb, /* [in] */
|
||||
DWORD dwLockType) /* [in] */
|
||||
{
|
||||
return STG_E_INVALIDFUNCTION;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* This method is part of the ILockBytes interface.
|
||||
*
|
||||
* The global memory implementation of ILockBytes does not support locking.
|
||||
*
|
||||
* See the documentation of ILockBytes for more info.
|
||||
*/
|
||||
HRESULT CDECL HGLOBALLockBytesImpl16_UnlockRegion(
|
||||
ILockBytes16* iface,
|
||||
ULARGE_INTEGER libOffset, /* [in] */
|
||||
ULARGE_INTEGER cb, /* [in] */
|
||||
DWORD dwLockType) /* [in] */
|
||||
{
|
||||
return STG_E_INVALIDFUNCTION;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* This method is part of the ILockBytes interface.
|
||||
*
|
||||
* This method returns information about the current
|
||||
* byte array object.
|
||||
*
|
||||
* See the documentation of ILockBytes for more info.
|
||||
*/
|
||||
HRESULT CDECL HGLOBALLockBytesImpl16_Stat(
|
||||
ILockBytes16*iface,
|
||||
STATSTG16* pstatstg, /* [out] */
|
||||
DWORD grfStatFlag) /* [in] */
|
||||
{
|
||||
HGLOBALLockBytesImpl16* const This=(HGLOBALLockBytesImpl16*)iface;
|
||||
|
||||
memset(pstatstg, 0, sizeof(STATSTG16));
|
||||
|
||||
pstatstg->pwcsName = NULL;
|
||||
pstatstg->type = STGTY_LOCKBYTES;
|
||||
pstatstg->cbSize = This->byteArraySize;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* CreateILockBytesOnHGlobal [OLE2.54]
|
||||
*
|
||||
* Creates an ILockBytes interface for a HGLOBAL handle.
|
||||
*
|
||||
* PARAMS
|
||||
* hGlobal the global handle (16bit)
|
||||
* fDeleteOnRelease delete handle on release.
|
||||
* ppLkbyt pointer to ILockBytes interface.
|
||||
*
|
||||
* RETURNS
|
||||
* Staddard OLE error return codes.
|
||||
*
|
||||
*/
|
||||
HRESULT WINAPI CreateILockBytesOnHGlobal16(
|
||||
HGLOBAL16 hGlobal, /* [in] */
|
||||
BOOL16 fDeleteOnRelease, /* [in] */
|
||||
LPLOCKBYTES16 *ppLkbyt) /* [out] (ptr to SEGPTR!) */
|
||||
{
|
||||
HGLOBALLockBytesImpl16* newLockBytes; /* SEGPTR */
|
||||
|
||||
newLockBytes = HGLOBALLockBytesImpl16_Construct(hGlobal, fDeleteOnRelease);
|
||||
|
||||
if (newLockBytes != NULL)
|
||||
return HGLOBALLockBytesImpl16_QueryInterface((ILockBytes16*)newLockBytes,
|
||||
&IID_ILockBytes,
|
||||
(void**)ppLkbyt);
|
||||
return E_OUTOFMEMORY;
|
||||
}
|
|
@ -161,7 +161,6 @@ static DWORD OLEDD_GetButtonState(void);
|
|||
|
||||
|
||||
/******************************************************************************
|
||||
* OleBuildVersion [OLE2.1]
|
||||
* OleBuildVersion [OLE32.@]
|
||||
*/
|
||||
DWORD WINAPI OleBuildVersion(void)
|
||||
|
@ -171,7 +170,6 @@ DWORD WINAPI OleBuildVersion(void)
|
|||
}
|
||||
|
||||
/***********************************************************************
|
||||
* OleInitialize (OLE2.2)
|
||||
* OleInitialize (OLE32.@)
|
||||
*/
|
||||
HRESULT WINAPI OleInitialize(LPVOID reserved)
|
||||
|
@ -228,7 +226,6 @@ HRESULT WINAPI OleInitialize(LPVOID reserved)
|
|||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleUninitialize [OLE2.3]
|
||||
* OleUninitialize [OLE32.@]
|
||||
*/
|
||||
void WINAPI OleUninitialize(void)
|
||||
|
|
|
@ -1,158 +0,0 @@
|
|||
1 pascal OleBuildVersion() OleBuildVersion
|
||||
2 pascal OleInitialize(ptr) OleInitialize
|
||||
3 pascal OleUninitialize() OleUninitialize
|
||||
4 pascal DllGetClassObject(ptr ptr ptr) DllGetClassObject16
|
||||
#5 WEP
|
||||
6 stub OLEQUERYLINKFROMDATA
|
||||
7 stub OLEQUERYCREATEFROMDATA
|
||||
8 stub OLECREATEFROMDATA
|
||||
9 stub OLECREATELINKFROMDATA
|
||||
10 stub OLECREATE
|
||||
11 stub OLECREATELINK
|
||||
12 pascal OleLoad(segptr ptr segptr ptr) OleLoad16
|
||||
13 stub OLESAVE
|
||||
14 stub OLERUN
|
||||
#15 ___EXPORTEDSTUB
|
||||
16 stub OLEISRUNNING
|
||||
17 stub OLELOCKRUNNING
|
||||
18 pascal ReadClassStg(segptr ptr) ReadClassStg16
|
||||
19 stub WRITECLASSSTG
|
||||
20 stub READCLASSSTM
|
||||
21 stub WRITECLASSSTM
|
||||
22 stub BINDMONIKER
|
||||
23 stub MKPARSEDISPLAYNAME
|
||||
24 stub OLESAVETOSTREAM
|
||||
25 stub OLELOADFROMSTREAM
|
||||
26 stub CREATEBINDCTX
|
||||
27 pascal CreateItemMoniker(str str ptr) CreateItemMoniker16
|
||||
28 pascal CreateFileMoniker(str ptr) CreateFileMoniker16
|
||||
29 stub CREATEGENERICCOMPOSITE
|
||||
30 pascal GetRunningObjectTable(long ptr) GetRunningObjectTable16
|
||||
31 stub OLEGETMALLOC
|
||||
32 stub RELEASESTGMEDIUM
|
||||
33 stub READSTRINGSTREAM
|
||||
34 stub WRITESTRINGSTREAM
|
||||
35 pascal RegisterDragDrop(word segptr) RegisterDragDrop16
|
||||
36 pascal RevokeDragDrop(word) RevokeDragDrop16
|
||||
37 stub DODRAGDROP
|
||||
38 stub CREATEOLEADVISEHOLDER
|
||||
39 stub CREATEDATAADVISEHOLDER
|
||||
40 stub OLECREATEMENUDESCRIPTOR
|
||||
41 pascal OleSetMenuDescriptor(word word word ptr ptr) OleSetMenuDescriptor16
|
||||
42 stub OLEDESTROYMENUDESCRIPTOR
|
||||
43 stub OPENORCREATESTREAM
|
||||
44 stub CREATEANTIMONIKER
|
||||
45 stub CREATEPOINTERMONIKER
|
||||
46 stub MONIKERRELATIVEPATHTO
|
||||
47 stub MONIKERCOMMONPREFIXWITH
|
||||
48 stub ISACCELERATOR
|
||||
49 pascal OleSetClipboard(ptr) OleSetClipboard16
|
||||
50 pascal OleGetClipboard(ptr) OleGetClipboard16
|
||||
51 stub OLEDUPLICATEDATA
|
||||
52 stub OLEGETICONOFFILE
|
||||
53 stub OLEGETICONOFCLASS
|
||||
54 pascal CreateILockBytesOnHGlobal(word word ptr) CreateILockBytesOnHGlobal16
|
||||
55 stub GETHGLOBALFROMILOCKBYTES
|
||||
56 pascal -ret16 OleMetaFilePictFromIconAndLabel(word str str word) OleMetaFilePictFromIconAndLabel16
|
||||
57 stub GETCLASSFILE
|
||||
58 stub OLEDRAW
|
||||
59 stub OLECREATEDEFAULTHANDLER
|
||||
60 stub OLECREATEEMBEDDINGHELPER
|
||||
61 stub OLECONVERTISTORAGETOOLESTREAMEX
|
||||
62 stub OLECONVERTOLESTREAMTOISTORAGEEX
|
||||
63 stub SETDOCUMENTBITSTG
|
||||
64 stub GETDOCUMENTBITSTG
|
||||
65 stub WRITEOLESTG
|
||||
66 stub READOLESTG
|
||||
67 stub OLECREATEFROMFILE
|
||||
68 stub OLECREATELINKTOFILE
|
||||
69 stub CREATEDATACACHE
|
||||
70 stub OLECONVERTISTORAGETOOLESTREAM
|
||||
71 stub OLECONVERTOLESTREAMTOISTORAGE
|
||||
74 stub READFMTUSERTYPESTG
|
||||
75 stub WRITEFMTUSERTYPESTG
|
||||
76 pascal -ret16 OleFlushClipboard() OleFlushClipboard16
|
||||
77 stub OLEISCURRENTCLIPBOARD
|
||||
78 stub OLETRANSLATEACCELERATOR
|
||||
79 pascal OleDoAutoConvert(ptr ptr) OleDoAutoConvert16
|
||||
80 stub OLEGETAUTOCONVERT
|
||||
81 stub OLESETAUTOCONVERT
|
||||
82 pascal GetConvertStg(ptr) GetConvertStg16
|
||||
83 stub SETCONVERTSTG
|
||||
84 stub CREATESTREAMONHGLOBAL
|
||||
85 stub GETHGLOBALFROMSTREAM
|
||||
86 stub OLESETCONTAINEDOBJECT
|
||||
87 stub OLENOTEOBJECTVISIBLE
|
||||
88 stub OLECREATESTATICFROMDATA
|
||||
89 stub OLEREGGETUSERTYPE
|
||||
90 stub OLEREGGETMISCSTATUS
|
||||
91 stub OLEREGENUMFORMATETC
|
||||
92 stub OLEREGENUMVERBS
|
||||
93 stub OLEGETENUMFORMATETC
|
||||
100 stub MAKEDEBUGSTREAM
|
||||
104 stub DBGLOGOPEN
|
||||
105 stub DBGLOGCLOSE
|
||||
106 stub DBGLOGOUTPUTDEBUGSTRING
|
||||
107 stub DBGLOGWRITE
|
||||
108 stub DBGLOGTIMESTAMP
|
||||
109 stub DBGLOGWRITEBANNER
|
||||
110 stub DBGDUMPOBJECT
|
||||
111 stub DBGISOBJECTVALID
|
||||
112 stub DUMPALLOBJECTS
|
||||
113 stub VALIDATEALLOBJECTS
|
||||
114 stub DBGDUMPCLASSNAME
|
||||
115 stub DBGDUMPEXTERNALOBJECT
|
||||
120 stub _IID_IENUMUNKNOWN
|
||||
121 stub _IID_IENUMSTRING
|
||||
122 stub _IID_IENUMMONIKER
|
||||
123 stub _IID_IENUMFORMATETC
|
||||
124 stub _IID_IENUMOLEVERB
|
||||
125 stub _IID_IENUMSTATDATA
|
||||
126 stub _IID_IENUMGENERIC
|
||||
127 stub _IID_IENUMHOLDER
|
||||
128 stub _IID_IENUMCALLBACK
|
||||
129 stub _IID_IPERSISTSTREAM
|
||||
130 stub _IID_IPERSISTSTORAGE
|
||||
131 stub _IID_IPERSISTFILE
|
||||
132 stub _IID_IPERSIST
|
||||
133 stub _IID_IVIEWOBJECT
|
||||
134 stub _IID_IDATAOBJECT
|
||||
135 stub _IID_IADVISESINK
|
||||
136 stub _IID_IDATAADVISEHOLDER
|
||||
137 stub _IID_IOLEADVISEHOLDER
|
||||
138 stub _IID_IOLEOBJECT
|
||||
139 stub _IID_IOLEINPLACEOBJECT
|
||||
140 stub _IID_IOLEWINDOW
|
||||
141 stub _IID_IOLEINPLACEUIWINDOW
|
||||
142 stub _IID_IOLEINPLACEFRAME
|
||||
143 stub _IID_IOLEINPLACEACTIVEOBJECT
|
||||
144 stub _IID_IOLECLIENTSITE
|
||||
145 stub _IID_IOLEINPLACESITE
|
||||
146 stub _IID_IPARSEDISPLAYNAME
|
||||
147 stub _IID_IOLECONTAINER
|
||||
148 stub _IID_IOLEITEMCONTAINER
|
||||
149 stub _IID_IOLELINK
|
||||
150 stub _IID_IOLECACHE
|
||||
151 stub _IID_IOLEMANAGER
|
||||
152 stub _IID_IOLEPRESOBJ
|
||||
153 stub _IID_IDROPSOURCE
|
||||
154 stub _IID_IDROPTARGET
|
||||
155 stub _IID_IDEBUG
|
||||
156 stub _IID_IDEBUGSTREAM
|
||||
157 stub _IID_IADVISESINK2
|
||||
158 stub _IID_IVIEWOBJECT2
|
||||
159 stub _IID_IOLECACHE2
|
||||
160 stub _IID_IOLECACHECONTROL
|
||||
161 stub _IID_IRUNNABLEOBJECT
|
||||
|
||||
# WINE MemLockBytes implementation.
|
||||
500 cdecl HGLOBALLockBytesImpl16_QueryInterface(segptr ptr ptr) HGLOBALLockBytesImpl16_QueryInterface
|
||||
501 cdecl HGLOBALLockBytesImpl16_AddRef(ptr) HGLOBALLockBytesImpl16_AddRef
|
||||
502 cdecl HGLOBALLockBytesImpl16_Release(ptr) HGLOBALLockBytesImpl16_Release
|
||||
503 cdecl HGLOBALLockBytesImpl16_ReadAt(ptr double ptr long ptr) HGLOBALLockBytesImpl16_ReadAt
|
||||
504 cdecl HGLOBALLockBytesImpl16_WriteAt(ptr double ptr long ptr) HGLOBALLockBytesImpl16_WriteAt
|
||||
505 cdecl HGLOBALLockBytesImpl16_Flush(ptr) HGLOBALLockBytesImpl16_Flush
|
||||
506 cdecl HGLOBALLockBytesImpl16_SetSize(ptr double) HGLOBALLockBytesImpl16_SetSize
|
||||
507 cdecl HGLOBALLockBytesImpl16_LockRegion(ptr double double long) HGLOBALLockBytesImpl16_LockRegion
|
||||
508 cdecl HGLOBALLockBytesImpl16_UnlockRegion(ptr double double long) HGLOBALLockBytesImpl16_UnlockRegion
|
||||
509 cdecl HGLOBALLockBytesImpl16_Stat(ptr ptr long) HGLOBALLockBytesImpl16_Stat
|
|
@ -1,245 +0,0 @@
|
|||
|
||||
/*
|
||||
* OLE2 library - 16 bit only interfaces
|
||||
*
|
||||
* Copyright 1995 Martin von Loewis
|
||||
* Copyright 1999 Francis Beaudet
|
||||
* Copyright 1999 Noel Borthwick
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#define NONAMELESSUNION
|
||||
#define NONAMELESSSTRUCT
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wingdi.h"
|
||||
#include "winuser.h"
|
||||
#include "ole2.h"
|
||||
#include "winerror.h"
|
||||
|
||||
#include "wine/winbase16.h"
|
||||
#include "wine/wingdi16.h"
|
||||
#include "wine/winuser16.h"
|
||||
#include "ifs.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(ole);
|
||||
|
||||
#define HICON_16(h32) (LOWORD(h32))
|
||||
#define HICON_32(h16) ((HICON)(ULONG_PTR)(h16))
|
||||
#define HINSTANCE_32(h16) ((HINSTANCE)(ULONG_PTR)(h16))
|
||||
|
||||
/***********************************************************************
|
||||
* RegisterDragDrop (OLE2.35)
|
||||
*/
|
||||
HRESULT WINAPI RegisterDragDrop16(
|
||||
HWND16 hwnd,
|
||||
LPDROPTARGET pDropTarget
|
||||
) {
|
||||
FIXME("(0x%04x,%p),stub!\n",hwnd,pDropTarget);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* RevokeDragDrop (OLE2.36)
|
||||
*/
|
||||
HRESULT WINAPI RevokeDragDrop16(
|
||||
HWND16 hwnd
|
||||
) {
|
||||
FIXME("(0x%04x),stub!\n",hwnd);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleMetaFilePictFromIconAndLabel (OLE2.56)
|
||||
*
|
||||
* Returns a global memory handle to a metafile which contains the icon and
|
||||
* label given.
|
||||
* I guess the result of that should look somehow like desktop icons.
|
||||
* If no hIcon is given, we load the icon via lpszSourceFile and iIconIndex.
|
||||
* This code might be wrong at some places.
|
||||
*/
|
||||
HGLOBAL16 WINAPI OleMetaFilePictFromIconAndLabel16(
|
||||
HICON16 hIcon,
|
||||
LPCOLESTR16 lpszLabel,
|
||||
LPCOLESTR16 lpszSourceFile,
|
||||
UINT16 iIconIndex
|
||||
) {
|
||||
METAFILEPICT16 *mf16;
|
||||
HGLOBAL16 hmf16;
|
||||
HMETAFILE hmf;
|
||||
INT mfSize;
|
||||
HDC hdc;
|
||||
|
||||
if (!hIcon) {
|
||||
if (lpszSourceFile) {
|
||||
HINSTANCE16 hInstance = LoadLibrary16(lpszSourceFile);
|
||||
|
||||
/* load the icon at index from lpszSourceFile */
|
||||
hIcon = HICON_16(LoadIconA(HINSTANCE_32(hInstance), (LPCSTR)(DWORD)iIconIndex));
|
||||
FreeLibrary16(hInstance);
|
||||
} else
|
||||
return 0;
|
||||
}
|
||||
|
||||
FIXME("(%04x, '%s', '%s', %d): incorrect metrics, please try to correct them !\n",
|
||||
hIcon, lpszLabel, lpszSourceFile, iIconIndex);
|
||||
|
||||
hdc = CreateMetaFileW(NULL);
|
||||
DrawIcon(hdc, 0, 0, HICON_32(hIcon)); /* FIXME */
|
||||
TextOutA(hdc, 0, 0, lpszLabel, 1); /* FIXME */
|
||||
hmf = CloseMetaFile(hdc);
|
||||
|
||||
hmf16 = GlobalAlloc16(0, sizeof(METAFILEPICT16));
|
||||
mf16 = GlobalLock16(hmf16);
|
||||
mf16->mm = MM_ANISOTROPIC;
|
||||
mf16->xExt = 20; /* FIXME: bogus */
|
||||
mf16->yExt = 20; /* ditto */
|
||||
mfSize = GetMetaFileBitsEx(hmf, 0, 0);
|
||||
mf16->hMF = GlobalAlloc16(GMEM_MOVEABLE, mfSize);
|
||||
if(mf16->hMF)
|
||||
{
|
||||
GetMetaFileBitsEx(hmf, mfSize, GlobalLock16(mf16->hMF));
|
||||
GlobalUnlock16(mf16->hMF);
|
||||
}
|
||||
return hmf16;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* CreateItemMoniker (OLE2.27)
|
||||
*/
|
||||
HRESULT WINAPI CreateItemMoniker16(LPCOLESTR16 lpszDelim,LPCOLESTR16 lpszItem,LPMONIKER* ppmk)
|
||||
{
|
||||
FIXME("(%s,%p),stub!\n",lpszDelim,ppmk);
|
||||
*ppmk = NULL;
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
* CreateFileMoniker (OLE2.28)
|
||||
*/
|
||||
HRESULT WINAPI CreateFileMoniker16(LPCOLESTR16 lpszPathName,LPMONIKER* ppmk)
|
||||
{
|
||||
FIXME("(%s,%p),stub!\n",lpszPathName,ppmk);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleSetMenuDescriptor (OLE2.41)
|
||||
*
|
||||
* PARAMS
|
||||
* hOleMenu FIXME: Should probably be an HOLEMENU16.
|
||||
*/
|
||||
HRESULT WINAPI OleSetMenuDescriptor16(
|
||||
HOLEMENU hOleMenu,
|
||||
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;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleLoad [OLE2.12]
|
||||
*
|
||||
* PARAMS
|
||||
* pStg Segmented LPSTORAGE pointer.
|
||||
* pClientSite Segmented LPOLECLIENTSITE pointer.
|
||||
*/
|
||||
HRESULT WINAPI OleLoad16(
|
||||
SEGPTR pStg,
|
||||
REFIID riid,
|
||||
SEGPTR pClientSite,
|
||||
LPVOID* ppvObj)
|
||||
{
|
||||
FIXME("(%x,%s,%x,%p), stub!\n", pStg, debugstr_guid(riid), pClientSite, ppvObj);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleDoAutoConvert [OLE2.79]
|
||||
*/
|
||||
HRESULT WINAPI OleDoAutoConvert16(LPSTORAGE pStg, LPCLSID pClsidNew)
|
||||
{
|
||||
FIXME("(%p,%p) : stub\n",pStg,pClsidNew);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* OleSetClipboard [OLE2.49]
|
||||
*/
|
||||
HRESULT WINAPI OleSetClipboard16(IDataObject* pDataObj)
|
||||
{
|
||||
FIXME("(%p): stub\n", pDataObj);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* OleGetClipboard [OLE2.50]
|
||||
*/
|
||||
HRESULT WINAPI OleGetClipboard16(IDataObject** ppDataObj)
|
||||
{
|
||||
FIXME("(%p): stub\n", ppDataObj);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* OleFlushClipboard [OLE2.76]
|
||||
*/
|
||||
|
||||
HRESULT WINAPI OleFlushClipboard16(void)
|
||||
{
|
||||
return OleFlushClipboard();
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
1 stub GETFILTERINFO
|
||||
2 stub IMPORTGR
|
||||
3 stub GETFILTERPREF
|
||||
4 stub IMPORTEMBEDDEDGR
|
||||
5 stub QD2GDI
|
||||
6 stub STATUSPROC
|
||||
7 stub ENUMFONTFUNC
|
||||
#8 WEP
|
||||
#9 ___EXPORTEDSTUB
|
|
@ -1,132 +0,0 @@
|
|||
/*
|
||||
* OLE2NLS library
|
||||
*
|
||||
* Copyright 1995 Martin von Loewis
|
||||
* Copyright 1998 David Lee Lambert
|
||||
* Copyright 2000 Julio César Gázquez
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <locale.h>
|
||||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winnls.h"
|
||||
#include "winuser.h"
|
||||
|
||||
#include "wine/winbase16.h"
|
||||
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(ole);
|
||||
|
||||
static LPVOID lpNLSInfo = NULL;
|
||||
|
||||
/******************************************************************************
|
||||
* GetLocaleInfoA [OLE2NLS.5]
|
||||
* Is the last parameter really WORD for Win16?
|
||||
*/
|
||||
INT16 WINAPI GetLocaleInfo16(LCID lcid,LCTYPE LCType,LPSTR buf,INT16 len)
|
||||
{
|
||||
return GetLocaleInfoA(lcid,LCType,buf,len);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* GetStringTypeA [OLE2NLS.7]
|
||||
*/
|
||||
BOOL16 WINAPI GetStringType16(LCID locale,DWORD dwInfoType,LPCSTR src,
|
||||
INT16 cchSrc,LPWORD chartype)
|
||||
{
|
||||
return GetStringTypeExA(locale,dwInfoType,src,cchSrc,chartype);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* GetUserDefaultLCID [OLE2NLS.1]
|
||||
*/
|
||||
LCID WINAPI GetUserDefaultLCID16(void)
|
||||
{
|
||||
return GetUserDefaultLCID();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* GetSystemDefaultLCID [OLE2NLS.2]
|
||||
*/
|
||||
LCID WINAPI GetSystemDefaultLCID16(void)
|
||||
{
|
||||
return GetSystemDefaultLCID();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* GetUserDefaultLangID [OLE2NLS.3]
|
||||
*/
|
||||
LANGID WINAPI GetUserDefaultLangID16(void)
|
||||
{
|
||||
return GetUserDefaultLangID();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* GetSystemDefaultLangID [OLE2NLS.4]
|
||||
*/
|
||||
LANGID WINAPI GetSystemDefaultLangID16(void)
|
||||
{
|
||||
return GetSystemDefaultLangID();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* LCMapStringA [OLE2NLS.6]
|
||||
*/
|
||||
INT16 WINAPI LCMapString16(LCID lcid, DWORD mapflags, LPCSTR srcstr, INT16 srclen,
|
||||
LPSTR dststr, INT16 dstlen)
|
||||
{
|
||||
return LCMapStringA(lcid, mapflags, srcstr, srclen, dststr, dstlen);
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* CompareStringA (OLE2NLS.8)
|
||||
*/
|
||||
UINT16 WINAPI CompareString16(DWORD lcid,DWORD fdwStyle,
|
||||
LPCSTR s1,DWORD l1,LPCSTR s2,DWORD l2)
|
||||
{
|
||||
return (UINT16)CompareStringA(lcid,fdwStyle,s1,l1,s2,l2);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* RegisterNLSInfoChanged [OLE2NLS.9]
|
||||
*/
|
||||
BOOL16 WINAPI RegisterNLSInfoChanged16(LPVOID lpNewNLSInfo) /* [???] FIXME */
|
||||
{
|
||||
FIXME("Fully implemented, but doesn't effect anything.\n");
|
||||
|
||||
if (!lpNewNLSInfo) {
|
||||
lpNLSInfo = NULL;
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
if (!lpNLSInfo) {
|
||||
lpNLSInfo = lpNewNLSInfo;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE; /* ptr not set */
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
1 pascal GetUserDefaultLCID() GetUserDefaultLCID16
|
||||
2 pascal GetSystemDefaultLCID() GetSystemDefaultLCID16
|
||||
3 pascal -ret16 GetUserDefaultLangID() GetUserDefaultLangID16
|
||||
4 pascal -ret16 GetSystemDefaultLangID() GetSystemDefaultLangID16
|
||||
5 pascal GetLocaleInfoA(long long ptr word) GetLocaleInfo16
|
||||
6 pascal -ret16 LCMapStringA(word long ptr word ptr word) LCMapString16
|
||||
7 pascal -ret16 GetStringTypeA(long long str word ptr) GetStringType16
|
||||
8 pascal -ret16 CompareStringA(long long str word str word) CompareString16
|
||||
9 pascal -ret16 RegisterNLSInfoChanged(ptr) RegisterNLSInfoChanged16
|
||||
#10 stub WEP
|
||||
11 stub LIBMAIN
|
||||
12 stub NOTIFYWINDOWPROC
|
|
@ -1,3 +0,0 @@
|
|||
1 stub DLLGETCLASSOBJECT
|
||||
#2 WEP
|
||||
#3 ___EXPORTEDSTUB
|
File diff suppressed because it is too large
Load diff
|
@ -1,56 +0,0 @@
|
|||
# Compound Storage DLL.
|
||||
# (FIXME: some methods are commented out. Commenting them in _WILL_
|
||||
# result in dataloss. Do it at your own risk.)
|
||||
|
||||
1 pascal StgCreateDocFileA(str long long ptr) StgCreateDocFile16
|
||||
2 stub StgCreateDocFileOnILockBytes
|
||||
# 2 pascal StgCreateDocFileOnILockBytes(ptr long long ptr) StgCreateDocFileOnILockBytes16
|
||||
3 pascal StgOpenStorage(str ptr long ptr long ptr) StgOpenStorage16
|
||||
4 pascal StgOpenStorageOnILockBytes(segptr ptr long long long ptr) StgOpenStorageOnILockBytes16
|
||||
5 pascal StgIsStorageFile(str) StgIsStorageFile16
|
||||
6 pascal StgIsStorageILockBytes(segptr) StgIsStorageILockBytes16
|
||||
7 stub StgSetTimes
|
||||
#8 WEP
|
||||
#9 ___EXPORTEDSTUB
|
||||
103 stub DllGetClassObject
|
||||
|
||||
# Storage Interface functions. Starting at 500
|
||||
# these are not exported in the real storage.dll, we use them
|
||||
# as 16->32 relays. They use the cdecl calling convention.
|
||||
|
||||
# IStorage
|
||||
500 cdecl IStorage16_QueryInterface(ptr ptr ptr) IStorage16_fnQueryInterface
|
||||
501 cdecl IStorage16_AddRef(ptr) IStorage16_fnAddRef
|
||||
502 cdecl IStorage16_Release(ptr) IStorage16_fnRelease
|
||||
503 cdecl IStorage16_CreateStream(ptr str long long long ptr) IStorage16_fnCreateStream
|
||||
|
||||
504 cdecl IStorage16_OpenStream(ptr str ptr long long ptr) IStorage16_fnOpenStream
|
||||
505 cdecl IStorage16_CreateStorage(ptr str long long long ptr) IStorage16_fnCreateStorage
|
||||
506 cdecl IStorage16_OpenStorage(ptr str ptr long ptr long ptr) IStorage16_fnOpenStorage
|
||||
507 cdecl IStorage16_CopyTo(ptr long ptr ptr ptr) IStorage16_fnCopyTo
|
||||
508 stub IStorage16_MoveElementTo
|
||||
509 cdecl IStorage16_Commit(ptr long) IStorage16_fnCommit
|
||||
510 stub IStorage16_Revert
|
||||
511 stub IStorage16_EnumElements
|
||||
512 stub IStorage16_DestroyElement
|
||||
513 stub IStorage16_RenameElement
|
||||
514 stub IStorage16_SetElementTimes
|
||||
515 stub IStorage16_SetClass
|
||||
516 stub IStorage16_SetStateBits
|
||||
517 cdecl IStorage16_Stat(ptr ptr long) IStorage16_fnStat
|
||||
|
||||
# IStream
|
||||
518 cdecl IStream16_QueryInterface(ptr ptr ptr) IStream16_fnQueryInterface
|
||||
519 cdecl IStream16_AddRef(ptr) IStream16_fnAddRef
|
||||
520 cdecl IStream16_Release(ptr) IStream16_fnRelease
|
||||
521 cdecl IStream16_Read(ptr ptr long ptr) IStream16_fnRead
|
||||
522 cdecl IStream16_Write(ptr ptr long ptr) IStream16_fnWrite
|
||||
523 cdecl IStream16_Seek(ptr double long ptr) IStream16_fnSeek
|
||||
524 stub IStream16_SetSize
|
||||
525 stub IStream16_CopyTo
|
||||
526 stub IStream16_Commit
|
||||
527 stub IStream16_Revert
|
||||
528 stub IStream16_LockRegion
|
||||
529 stub IStream16_UnlockRegion
|
||||
530 stub IStream16_Stat
|
||||
531 stub IStream16_Clone
|
|
@ -486,7 +486,6 @@ static const unsigned char Lookup_224[128 * 3] = {
|
|||
|
||||
/***********************************************************************
|
||||
* LHashValOfNameSysA (OLEAUT32.166)
|
||||
* LHashValOfNameSys (TYPELIB.4)
|
||||
*
|
||||
* Produce a string hash value.
|
||||
*
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
#1 WEP
|
||||
2 pascal OleRegisterServer(str ptr ptr word word) OleRegisterServer16
|
||||
3 pascal OleRevokeServer(long) OleRevokeServer16
|
||||
4 pascal OleBlockServer(long) OleBlockServer16
|
||||
5 pascal OleUnblockServer(long ptr) OleUnblockServer16
|
||||
6 pascal OleRegisterServerDoc(long str ptr ptr) OleRegisterServerDoc16
|
||||
7 pascal OleRevokeServerDoc(long) OleRevokeServerDoc16
|
||||
8 pascal OleRenameServerDoc(long str) OleRenameServerDoc16
|
||||
9 pascal OleRevertServerDoc(long) OleRevertServerDoc16
|
||||
10 pascal OleSavedServerDoc(long) OleSavedServerDoc16
|
||||
11 stub OLEREVOKEOBJECT
|
||||
12 stub OLEQUERYSERVERVERSION
|
||||
21 stub SRVRWNDPROC
|
||||
22 stub DOCWNDPROC
|
||||
23 stub ITEMWNDPROC
|
||||
24 stub SENDDATAMSG
|
||||
25 stub FINDITEMWND
|
||||
26 stub ITEMCALLBACK
|
||||
27 stub TERMINATECLIENTS
|
||||
28 stub TERMINATEDOCCLIENTS
|
||||
29 stub DELETECLIENTINFO
|
||||
30 stub SENDRENAMEMSG
|
||||
31 stub ENUMFORTERMINATE
|
|
@ -27,7 +27,6 @@
|
|||
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "wine/windef16.h"
|
||||
#include "objbase.h"
|
||||
#include "wine/debug.h"
|
||||
|
||||
|
@ -132,28 +131,6 @@ typedef struct _OLESERVER
|
|||
|
||||
static LONG OLE_current_handle;
|
||||
|
||||
/******************************************************************************
|
||||
* OleRegisterServer [OLESVR.2]
|
||||
*/
|
||||
OLESTATUS WINAPI OleRegisterServer16( LPCSTR name, LPOLESERVER serverStruct,
|
||||
LHSERVER *hRet, HINSTANCE16 hServer,
|
||||
OLE_SERVER_USE use )
|
||||
{
|
||||
FIXME("(%s,...): stub\n",name);
|
||||
*hRet=++OLE_current_handle;
|
||||
/* return OLE_ERROR_MEMORY, OLE_ERROR_PROTECT_ONLY if you want it fail*/
|
||||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleBlockServer [OLESVR.4]
|
||||
*/
|
||||
OLESTATUS WINAPI OleBlockServer16(LHSERVER hServer)
|
||||
{
|
||||
FIXME("(%d): stub\n",hServer);
|
||||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleBlockServer [OLESVR32.4]
|
||||
*/
|
||||
|
@ -163,17 +140,6 @@ OLESTATUS WINAPI OleBlockServer(LHSERVER hServer)
|
|||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleUnblockServer [OLESVR.5]
|
||||
*/
|
||||
OLESTATUS WINAPI OleUnblockServer16(LHSERVER hServer, BOOL16 *block)
|
||||
{
|
||||
FIXME("(%d): stub\n",hServer);
|
||||
/* no more blocked messages :) */
|
||||
*block=FALSE;
|
||||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleUnblockServer [OLESVR32.5]
|
||||
*/
|
||||
|
@ -185,27 +151,6 @@ OLESTATUS WINAPI OleUnblockServer(LHSERVER hServer, BOOL *block)
|
|||
return OLE_OK;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
* OleRegisterServerDoc [OLESVR.6]
|
||||
*/
|
||||
OLESTATUS WINAPI OleRegisterServerDoc16( LHSERVER hServer, LPCSTR docname,
|
||||
LPOLESERVERDOC document,
|
||||
LHSERVERDOC *hRet)
|
||||
{
|
||||
FIXME("(%d,%s): stub\n",hServer, docname);
|
||||
*hRet=++OLE_current_handle;
|
||||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleRevokeServerDoc [OLESVR.7]
|
||||
*/
|
||||
OLESTATUS WINAPI OleRevokeServerDoc16(LHSERVERDOC hServerDoc)
|
||||
{
|
||||
FIXME("%d - stub\n",hServerDoc);
|
||||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleRevokeServerDoc [OLESVR32.7]
|
||||
*/
|
||||
|
@ -215,15 +160,6 @@ OLESTATUS WINAPI OleRevokeServerDoc(LHSERVERDOC hServerDoc)
|
|||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleRevokeServer [OLESVR.3]
|
||||
*/
|
||||
OLESTATUS WINAPI OleRevokeServer16(LHSERVER hServer)
|
||||
{
|
||||
FIXME("%d - stub\n",hServer);
|
||||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleRegisterServer [OLESVR32.2]
|
||||
*/
|
||||
|
@ -245,16 +181,6 @@ OLESTATUS WINAPI OleRegisterServerDoc( LHSERVER hServer, LPCSTR docname,
|
|||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleRenameServerDoc [OLESVR.8]
|
||||
*
|
||||
*/
|
||||
OLESTATUS WINAPI OleRenameServerDoc16(LHSERVERDOC hDoc, LPCSTR newName)
|
||||
{
|
||||
FIXME("(%d,%s): stub.\n", hDoc, newName);
|
||||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleRenameServerDoc [OLESVR32.8]
|
||||
*
|
||||
|
@ -265,16 +191,6 @@ OLESTATUS WINAPI OleRenameServerDoc(LHSERVERDOC hDoc, LPCSTR newName)
|
|||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleRevertServerDoc [OLESVR.9]
|
||||
*
|
||||
*/
|
||||
OLESTATUS WINAPI OleRevertServerDoc16(LHSERVERDOC hDoc)
|
||||
{
|
||||
FIXME("(%d): stub.\n", hDoc);
|
||||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleRevertServerDoc [OLESVR32.9]
|
||||
*
|
||||
|
@ -285,16 +201,6 @@ OLESTATUS WINAPI OleRevertServerDoc(LHSERVERDOC hDoc)
|
|||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleSavedServerDoc [OLESVR.10]
|
||||
*
|
||||
*/
|
||||
OLESTATUS WINAPI OleSavedServerDoc16(LHSERVERDOC hDoc)
|
||||
{
|
||||
FIXME("(%d): stub.\n", hDoc);
|
||||
return OLE_OK;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* OleSavedServerDoc [OLESVR32.10]
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue