Authors: Paul Quinn <paulq@corel.ca>, Aaron Barnes <aaronb@corel.ca>, Adrian Thurston <adriant@corel.ca>
Bundle of new stubs.
diff --git a/include/ole2.h b/include/ole2.h
index 9966342..9688b6b 100644
--- a/include/ole2.h
+++ b/include/ole2.h
@@ -38,5 +38,47 @@
HRESULT WINAPI WriteClassStm(IStream *pStm,REFCLSID rclsid);
HRESULT WINAPI ReadClassStm(IStream *pStm,REFCLSID pclsid);
+
+HRESULT WINAPI OleSave(LPPERSISTSTORAGE pPS, LPSTORAGE pStg, BOOL fSameAsLoad);
+HRESULT WINAPI OleRegGetMiscStatus (REFCLSID clsid, DWORD dwAspect, DWORD* pdwStatus);
+HRESULT WINAPI CreateStreamOnHGlobal (HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM* ppstm);
+HRESULT WINAPI OleRegEnumVerbs (REFCLSID clsid, LPENUMOLEVERB* ppenum);
+BOOL WINAPI OleIsRunning(LPOLEOBJECT pObject);
+HRESULT WINAPI OleCreateLinkFromData(LPDATAOBJECT pSrcDataObj, REFIID riid,
+ DWORD renderopt, LPFORMATETC pFormatEtc,
+ LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
+ LPVOID* ppvObj);
+HRESULT WINAPI OleSetContainedObject(LPUNKNOWN pUnknown, BOOL fContained);
+HRESULT WINAPI OleQueryLinkFromData(IDataObject* pSrcDataObject);
+HRESULT WINAPI OleQueryCreateFromData(LPDATAOBJECT pSrcDataObject);
+HRESULT WINAPI OleRun(LPUNKNOWN pUnknown);
+HRESULT WINAPI OleGetClipboard(IDataObject** ppDataObj);
+HRESULT WINAPI OleCreateStaticFromData(LPDATAOBJECT pSrcDataObj, REFIID iid,
+ DWORD renderopt, LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite,
+ LPSTORAGE pStg, LPVOID* ppvObj);
+HRESULT WINAPI ReadFmtUserTypeStg(LPSTORAGE pstg, CLIPFORMAT* pcf, LPOLESTR* lplpszUserType);
+HRESULT WINAPI OleLoad(LPSTORAGE pStg, REFIID riid, LPOLECLIENTSITE pClientSite, LPVOID* ppvObj);
+HRESULT WINAPI GetHGlobalFromILockBytes(LPLOCKBYTES plkbyt, HGLOBAL* phglobal);
+HRESULT WINAPI CreateILockBytesOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPLOCKBYTES* pplkbyt);
+HRESULT WINAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER* ppDAHolder);
+HGLOBAL WINAPI OleGetIconOfClass(REFCLSID rclsid, LPOLESTR lpszLabel, BOOL fUseTypeAsLabel);
+HRESULT WINAPI OleLockRunning(LPUNKNOWN pUnknown, BOOL fLock, BOOL fLastUnlockCloses);
+HRESULT WINAPI OleCreateFromFile(REFCLSID rclsid, LPCOLESTR lpszFileName, REFIID riid,
+ DWORD renderopt, LPFORMATETC lpFormatEtc, LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj);
+HRESULT WINAPI OleCreateLink(LPMONIKER pmkLinkSrc, REFIID riid, DWORD renderopt, LPFORMATETC lpFormatEtc,
+ LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj);
+HRESULT WINAPI OleCreate(REFCLSID rclsid, REFIID riid, DWORD renderopt, LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite,
+ LPSTORAGE pStg, LPVOID* ppvObj);
+HRESULT WINAPI OleFlushClipboard();
+HRESULT WINAPI SetConvertStg(LPSTORAGE pStg, BOOL fConvert);
+BOOL WINAPI IsAccelerator(HACCEL hAccel, int cAccelEntries, LPMSG lpMsg, WORD* lpwCmd);
+HRESULT WINAPI OleCreateLinkToFile(LPCOLESTR lpszFileName, REFIID riid, DWORD renderopt, LPFORMATETC lpFormatEtc,
+ LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj);
+HRESULT WINAPI OleDuplicateData(HANDLE hSrc, CLIPFORMAT cfFormat, UINT uiFlags);
+HRESULT WINAPI WriteFmtUserTypeStg(LPSTORAGE pstg, CLIPFORMAT cf, LPOLESTR lpszUserType);
+HRESULT WINAPI OleTranslateAccelerator (LPOLEINPLACEFRAME lpFrame, LPOLEINPLACEFRAMEINFO lpFrameInfo, LPMSG lpmsg);
+HRESULT WINAPI OleCreateFromData(LPDATAOBJECT pSrcDataObj, REFIID riid, DWORD renderopt, LPFORMATETC pFormatEtc,
+ LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj);
+
#endif /* __WINE_OLE2_H */
diff --git a/include/oleauto.h b/include/oleauto.h
index fd11314..45de1f1 100644
--- a/include/oleauto.h
+++ b/include/oleauto.h
@@ -296,6 +296,7 @@
HRESULT WINAPI VarCyFromR4(FLOAT fltIn, CY* pcyOut);
HRESULT WINAPI VarCyFromR8(double dblIn, CY* pcyOut);
HRESULT WINAPI VarCyFromDate(DATE dateIn, CY* pcyOut);
+HRESULT WINAPI VarCyFromStr(OLECHAR *strIn, LCID lcid, ULONG dwFlags, CY *pcyOut);
HRESULT WINAPI VarCyFromBool(VARIANT_BOOL boolIn, CY* pcyOut);
HRESULT WINAPI VarCyFromI1(CHAR cIn, CY*pcyOut);
HRESULT WINAPI VarCyFromUI2(USHORT uiIn, CY*pcyOut);
@@ -311,6 +312,7 @@
HRESULT WINAPI VarBstrFromI4(LONG lIn, LCID lcid, ULONG dwFlags, BSTR* pbstrOut);
HRESULT WINAPI VarBstrFromR4(FLOAT fltIn, LCID lcid, ULONG dwFlags, BSTR* pbstrOut);
HRESULT WINAPI VarBstrFromR8(double dblIn, LCID lcid, ULONG dwFlags, BSTR* pbstrOut);
+HRESULT WINAPI VarBstrFromCy(CY cyIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut);
HRESULT WINAPI VarBstrFromDate(DATE dateIn, LCID lcid, ULONG dwFlags, BSTR* pbstrOut);
HRESULT WINAPI VarBstrFromBool(VARIANT_BOOL boolIn, LCID lcid, ULONG dwFlags, BSTR* pbstrOut);
HRESULT WINAPI VarBstrFromI1(CHAR cIn, LCID lcid, ULONG dwFlags, BSTR*pbstrOut);
diff --git a/include/olectl.h b/include/olectl.h
index 562b331..cda24ad 100644
--- a/include/olectl.h
+++ b/include/olectl.h
@@ -279,6 +279,8 @@
#define CTL_E_SEARCHTEXTNOTFOUND STD_CTL_SCODE(744)
#define CTL_E_REPLACEMENTSTOOLONG STD_CTL_SCODE(746)
+#define VT_COLOR VT_I4
+#define VT_FONT VT_DISPATCH
#define VT_STREAMED_PROPSET 73 // [P] Stream contains a property set
#define VT_STORED_PROPSET 74 // [P] Storage contains a property set
#define VT_BLOB_PROPSET 75 // [P] Blob contains a property set
diff --git a/include/wine/obj_storage.h b/include/wine/obj_storage.h
index 9c8f74d..9e66c46 100644
--- a/include/wine/obj_storage.h
+++ b/include/wine/obj_storage.h
@@ -680,6 +680,8 @@
HRESULT WINAPI WriteClassStg(IStorage* pStg, REFCLSID rclsid);
+HRESULT WINAPI StgCreateDocfileOnILockBytes(ILockBytes *plkbyt,DWORD grfMode, DWORD reserved, IStorage** ppstgOpen);
+HRESULT WINAPI StgOpenStorageOnILockBytes(ILockBytes *plkbyt, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen);
/*****************************************************************************
* Other storage API
diff --git a/include/winuser.h b/include/winuser.h
index 18d6e87..f4be841 100644
--- a/include/winuser.h
+++ b/include/winuser.h
@@ -3397,6 +3397,7 @@
LONG WINAPI TabbedTextOutW(HDC,INT,INT,LPCWSTR,INT,INT,const INT*,INT);
#define TabbedTextOut WINELIB_NAME_AW(TabbedTextOut)
INT WINAPI ToAscii(UINT,UINT,LPBYTE,LPWORD,UINT);
+INT WINAPI ToAsciiEx(UINT,UINT,LPBYTE,LPWORD,UINT,HKL);
BOOL WINAPI TrackPopupMenu(HMENU,UINT,INT,INT,INT,HWND,const RECT*);
INT WINAPI TranslateAccelerator(HWND,HACCEL,LPMSG);
BOOL WINAPI TranslateMDISysAccel(HWND,LPMSG);
@@ -3413,6 +3414,9 @@
WORD WINAPI VkKeyScanA(CHAR);
WORD WINAPI VkKeyScanW(WCHAR);
#define VkKeyScan WINELIB_NAME_AW(VkKeyScan)
+WORD WINAPI VkKeyScanExA(CHAR, HKL);
+WORD WINAPI VkKeyScanExW(WCHAR, HKL);
+#define VkKeyScanEx WINELIB_NAME_AW(VkKeyScanEx)
HWND WINAPI WindowFromDC(HDC);
HWND WINAPI WindowFromPoint(POINT);
BOOL WINAPI WinHelpA(HWND,LPCSTR,UINT,DWORD);
diff --git a/ole/Makefile.in b/ole/Makefile.in
index b957087..ad7ed75 100644
--- a/ole/Makefile.in
+++ b/ole/Makefile.in
@@ -18,6 +18,7 @@
ole2.c \
ole2disp.c \
ole2nls.c \
+ ole2stubs.c \
olecli.c \
oledlg.c \
olefont.c \
diff --git a/ole/ole2.c b/ole/ole2.c
index 72807bc..d9bc52f 100644
--- a/ole/ole2.c
+++ b/ole/ole2.c
@@ -427,7 +427,7 @@
/***********************************************************************
* OleQueryLinkFromData32 [OLE32.118]
*/
-HRESULT WINAPI OleQueryLinkFromData32(
+HRESULT WINAPI OleQueryLinkFromData(
IDataObject* pSrcDataObject)
{
FIXME(ole,"(%p),stub!\n", pSrcDataObject);
@@ -435,9 +435,9 @@
}
/***********************************************************************
- * OleRegGetMiscStatus32 [OLE32.121]
+ * OleRegGetMiscStatus [OLE32.121]
*/
-HRESULT WINAPI OleRegGetMiscStatus32(
+HRESULT WINAPI OleRegGetMiscStatus(
REFCLSID clsid,
DWORD dwAspect,
DWORD* pdwStatus)
@@ -449,7 +449,7 @@
/***********************************************************************
* OleGetClipboard32 [OLE32.105]
*/
-HRESULT WINAPI OleGetClipboard32(
+HRESULT WINAPI OleGetClipboard(
IDataObject** ppDataObj)
{
FIXME(ole,"(%p),stub!\n", ppDataObj);
diff --git a/ole/ole2stubs.c b/ole/ole2stubs.c
new file mode 100644
index 0000000..5a48565
--- /dev/null
+++ b/ole/ole2stubs.c
@@ -0,0 +1,294 @@
+/*
+ * Temporary place for ole2 stubs.
+ *
+ * Copyright (C) 1999 Corel Corporation
+ */
+
+#include "ole2.h"
+#include "debug.h"
+
+/******************************************************************************
+ * OleCreateFromData [OLE32.92]
+ */
+HRESULT WINAPI OleCreateFromData(LPDATAOBJECT pSrcDataObj, REFIID riid,
+ DWORD renderopt, LPFORMATETC pFormatEtc,
+ LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
+ LPVOID* ppvObj)
+{
+ FIXME(ole,"(%p,%p,%li,%p,%p,%p,%p), stub!\n", pSrcDataObj,riid,renderopt,pFormatEtc,pClientSite,pStg,ppvObj);
+ return S_OK;
+}
+
+
+/******************************************************************************
+ * OleCreateLinkToFile [OLE32.96]
+ */
+HRESULT WINAPI OleCreateLinkToFile(LPCOLESTR lpszFileName, REFIID riid,
+ DWORD renderopt, LPFORMATETC lpFormatEtc,
+ LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj)
+{
+ FIXME(ole,"(%p,%p,%li,%p,%p,%p,%p), stub!\n",lpszFileName, riid, renderopt, lpFormatEtc, pClientSite, pStg, ppvObj);
+ return S_OK;
+}
+
+
+/******************************************************************************
+ * OleDuplicateData [OLE32.102]
+ */
+HRESULT WINAPI OleDuplicateData(HANDLE hSrc, CLIPFORMAT cfFormat,
+ UINT uiFlags)
+{
+ FIXME(ole,"(%x,%x,%x), stub!\n", hSrc, cfFormat, uiFlags);
+ return S_OK;
+}
+
+
+/***********************************************************************
+ * WriteFmtUserTypeStg (OLE32.160)
+ */
+HRESULT WINAPI WriteFmtUserTypeStg(
+ LPSTORAGE pstg, CLIPFORMAT cf, LPOLESTR lpszUserType)
+{
+ FIXME(ole,"(%p,%x,%p) stub!\n",pstg,cf,lpszUserType);
+ return S_OK;
+}
+
+/***********************************************************************
+ * OleTranslateAccelerator [OLE32.130]
+ */
+HRESULT WINAPI OleTranslateAccelerator (LPOLEINPLACEFRAME lpFrame,
+ LPOLEINPLACEFRAMEINFO lpFrameInfo, LPMSG lpmsg)
+{
+ FIXME(ole,"(%p,%p,%p),stub!\n", lpFrame, lpFrameInfo, lpmsg);
+ return S_OK;
+}
+
+/******************************************************************************
+ * CoTreatAsClass [OLE32.46]
+ */
+HRESULT WINAPI CoTreatAsClass(REFCLSID clsidOld, REFCLSID clsidNew)
+{
+ FIXME(ole,"(%p,%p), stub!\n", clsidOld, clsidNew);
+ return S_OK;
+}
+
+
+/******************************************************************************
+ * IsAccelerator [OLE32.75]
+ */
+BOOL WINAPI IsAccelerator(HACCEL hAccel, int cAccelEntries, LPMSG lpMsg, WORD* lpwCmd)
+{
+ FIXME(ole,"(%x,%i,%p,%p), stub!\n", hAccel, cAccelEntries, lpMsg, lpwCmd);
+ return TRUE;
+}
+
+/******************************************************************************
+ * SetConvertStg [OLE32.142]
+ */
+HRESULT WINAPI SetConvertStg(LPSTORAGE pStg, BOOL fConvert)
+{
+ FIXME(ole,"(%p,%x), stub!\n", pStg, fConvert);
+ return S_OK;
+}
+
+/******************************************************************************
+ * OleFlushClipboard [OLE32.103]
+ */
+HRESULT WINAPI OleFlushClipboard()
+{
+ FIXME(ole,"(), stub!\n");
+ return S_OK;
+}
+
+/******************************************************************************
+ * OleCreate [OLE32.80]
+ */
+HRESULT WINAPI OleCreate(REFCLSID rclsid, REFIID riid, DWORD renderopt, LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite,
+ LPSTORAGE pStg, LPVOID* ppvObj)
+{
+ FIXME(ole,"(not shown), stub!\n");
+ return S_OK;
+}
+
+/******************************************************************************
+ * OleCreateLink [OLE32.94]
+ */
+HRESULT WINAPI OleCreateLink(LPMONIKER pmkLinkSrc, REFIID riid, DWORD renderopt, LPFORMATETC lpFormatEtc,
+ LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj)
+{
+ FIXME(ole,"(not shown), stub!\n");
+ return S_OK;
+}
+
+/******************************************************************************
+ * OleCreateFromFile [OLE32.93]
+ */
+HRESULT WINAPI OleCreateFromFile(REFCLSID rclsid, LPCOLESTR lpszFileName, REFIID riid,
+ DWORD renderopt, LPFORMATETC lpFormatEtc, LPOLECLIENTSITE pClientSite, LPSTORAGE pStg, LPVOID* ppvObj)
+{
+ FIXME(ole,"(not shown), stub!\n");
+ return S_OK;
+}
+
+/******************************************************************************
+ * OleLockRunning [OLE32.114]
+ */
+HRESULT WINAPI OleLockRunning(LPUNKNOWN pUnknown, BOOL fLock, BOOL fLastUnlockCloses)
+{
+ FIXME(ole,"(%p,%x,%x), stub!\n", pUnknown, fLock, fLastUnlockCloses);
+ return S_OK;
+}
+
+/******************************************************************************
+ * OleGetIconOfClass [OLE32.106]
+ */
+HGLOBAL WINAPI OleGetIconOfClass(REFCLSID rclsid, LPOLESTR lpszLabel, BOOL fUseTypeAsLabel)
+{
+ FIXME(ole,"(%p,%p,%x), stub!\n", rclsid, lpszLabel, fUseTypeAsLabel);
+ return S_OK;
+}
+
+/******************************************************************************
+ * OleQueryCreateFromData [OLE32.117]
+ */
+HRESULT WINAPI OleQueryCreateFromData(LPDATAOBJECT pSrcDataObject)
+{
+ FIXME(ole,"(%p), stub!\n", pSrcDataObject);
+ return S_OK;
+}
+
+/******************************************************************************
+ * CreateDataAdviseHolder [OLE32.53]
+ */
+HRESULT WINAPI CreateDataAdviseHolder(LPDATAADVISEHOLDER* ppDAHolder)
+{
+ FIXME(ole,"(%p), stub!\n", ppDAHolder);
+ return S_OK;
+}
+
+/******************************************************************************
+ * CreateILockBytesOnHGlobal [OLE32.67]
+ */
+HRESULT WINAPI CreateILockBytesOnHGlobal(HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPLOCKBYTES* pplkbyt)
+{
+ FIXME(ole,"(%x,%x,%p), stub!\n", hGlobal, fDeleteOnRelease, pplkbyt);
+ return S_OK;
+}
+
+/******************************************************************************
+ * GetHGlobalFromILockBytes [OLE32.70]
+ */
+HRESULT WINAPI GetHGlobalFromILockBytes (LPLOCKBYTES plkbyt, HGLOBAL* phglobal)
+{
+ FIXME(ole,"(%p,%p), stub!\n", plkbyt, phglobal);
+ return S_OK;
+}
+
+/******************************************************************************
+ * OleLoad [OLE32.112]
+ */
+HRESULT WINAPI OleLoad(LPSTORAGE pStg, REFIID riid, LPOLECLIENTSITE pClientSite, LPVOID* ppvObj)
+{
+ FIXME(ole,"(%p,%p,%p,%p), stub!\n", pStg, riid, pClientSite, ppvObj);
+ return S_OK;
+}
+
+/******************************************************************************
+ * ReadFmtUserTypeStg [OLE32.136]
+ */
+HRESULT WINAPI ReadFmtUserTypeStg (LPSTORAGE pstg, CLIPFORMAT* pcf, LPOLESTR* lplpszUserType)
+{
+ FIXME(ole,"(%p,%p,%p), stub!\n", pstg, pcf, lplpszUserType);
+ return S_OK;
+}
+
+/******************************************************************************
+ * OleCreateStaticFromData [OLE32.98]
+ */
+HRESULT WINAPI OleCreateStaticFromData(LPDATAOBJECT pSrcDataObj, REFIID iid,
+ DWORD renderopt, LPFORMATETC pFormatEtc, LPOLECLIENTSITE pClientSite,
+ LPSTORAGE pStg, LPVOID* ppvObj)
+{
+ FIXME(ole,"(not shown), stub!\n");
+ return S_OK;
+}
+
+/******************************************************************************
+ * OleRun [OLE32.123]
+ */
+HRESULT WINAPI OleRun(LPUNKNOWN pUnknown)
+{
+ FIXME(ole,"(%p), stub!\n", pUnknown);
+ return S_OK;
+}
+
+/******************************************************************************
+ * OleSetContainedObject [OLE32.128]
+ */
+HRESULT WINAPI OleSetContainedObject(LPUNKNOWN pUnknown, BOOL fContained)
+{
+ FIXME(ole,"(%p,%x), stub!\n", pUnknown, fContained);
+ return S_OK;
+}
+
+/******************************************************************************
+ * OleCreateLinkFromData [OLE32.95]
+ */
+
+HRESULT WINAPI OleCreateLinkFromData(LPDATAOBJECT pSrcDataObj, REFIID riid,
+ DWORD renderopt, LPFORMATETC pFormatEtc,
+ LPOLECLIENTSITE pClientSite, LPSTORAGE pStg,
+ LPVOID* ppvObj)
+{
+ FIXME(ole,"(not shown), stub!\n");
+ return S_OK;
+}
+
+/******************************************************************************
+ * CreateDataCache [OLE32.54]
+ */
+HRESULT WINAPI CreateDataCache(LPUNKNOWN pUnkOuter, REFCLSID rclsid, REFIID iid, LPVOID* ppv)
+{
+ FIXME(ole,"(%p,%p,%p,%p), stub!\n", pUnkOuter, rclsid, iid, ppv);
+ return S_OK;
+}
+
+/******************************************************************************
+ * OleIsRunning [OLE32.111]
+ */
+BOOL WINAPI OleIsRunning(LPOLEOBJECT pObject)
+{
+ FIXME(ole,"(%p), stub!\n", pObject);
+ return TRUE;
+}
+
+/***********************************************************************
+ * OleRegEnumVerbs [OLE32.120]
+ */
+HRESULT WINAPI OleRegEnumVerbs (REFCLSID clsid, LPENUMOLEVERB* ppenum)
+{
+ FIXME(ole,"(%p,%p), stub!\n", clsid, ppenum);
+ return S_OK;
+}
+
+/***********************************************************************
+ * CreateStreamOnHGlobal [OLE32.61]
+ */
+HRESULT WINAPI CreateStreamOnHGlobal (HGLOBAL hGlobal, BOOL fDeleteOnRelease, LPSTREAM* ppstm)
+{
+ FIXME(ole,"(%x,%x,%p), stub!\n", hGlobal, fDeleteOnRelease, ppstm);
+ return S_OK;
+}
+
+/***********************************************************************
+ * OleSave [OLE32.124]
+ */
+HRESULT WINAPI OleSave(
+ LPPERSISTSTORAGE pPS,
+ LPSTORAGE pStg,
+ BOOL fSameAsLoad)
+{
+ FIXME(ole,"(%p,%p,%x), stub!\n", pPS, pStg, fSameAsLoad);
+ return S_OK;
+}
+
diff --git a/ole/storage.c b/ole/storage.c
index 0e29d7d..988da1e 100644
--- a/ole/storage.c
+++ b/ole/storage.c
@@ -1567,6 +1567,26 @@
*/
/******************************************************************************
+ * StgOpenStorageOnILockBytes [OLE32.149]
+ */
+HRESULT WINAPI StgOpenStorageOnILockBytes(ILockBytes *plkbyt, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen)
+{
+ FIXME(ole, "(not shown) stub!\n");
+ return S_OK;
+}
+
+
+/******************************************************************************
+ * StgCreateDocfileOnILockBytes [OLE32.145]
+ */
+HRESULT WINAPI StgCreateDocfileOnILockBytes(ILockBytes *plkbyt,DWORD grfMode, DWORD reserved, IStorage** ppstgOpen)
+{
+ FIXME(ole, "(not shown) stub!\n");
+ return S_OK;
+}
+
+
+/******************************************************************************
* StgCreateDocFile16 [STORAGE.1]
*/
HRESULT WINAPI StgCreateDocFile16(
diff --git a/ole/variant.c b/ole/variant.c
index ad63734..4bccf49 100644
--- a/ole/variant.c
+++ b/ole/variant.c
@@ -3189,6 +3189,15 @@
}
/******************************************************************************
+ * VarBstrFromCy [OLEAUT32.113]
+ */
+HRESULT WINAPI VarBstrFromCy(CY cyIn, LCID lcid, ULONG dwFlags, BSTR *pbstrOut) {
+ /* FIXME */
+ return E_NOTIMPL;
+}
+
+
+/******************************************************************************
* VarBstrFromDate32 [OLEAUT32.114]
*
* The date is implemented using an 8 byte floating-point number.
@@ -4197,6 +4206,15 @@
}
/**********************************************************************
+ * VarCyFromDate32 [OLEAUT32.104]
+ */
+HRESULT WINAPI VarCyFromStr(OLECHAR *strIn, LCID lcid, ULONG dwFlags, CY *pcyOut) {
+ /* FIXME */
+ return E_NOTIMPL;
+}
+
+
+/**********************************************************************
* VarCyFromBool32 [OLEAUT32.106]
* Convert boolean to currency
*/
diff --git a/relay32/ole32.spec b/relay32/ole32.spec
index e0e19d1..b4f6308 100644
--- a/relay32/ole32.spec
+++ b/relay32/ole32.spec
@@ -46,22 +46,22 @@
43 stdcall CoTaskMemAlloc(long) CoTaskMemAlloc
44 stdcall CoTaskMemFree(ptr) CoTaskMemFree
45 stdcall CoTaskMemRealloc(ptr long) CoTaskMemRealloc
- 46 stub CoTreatAsClass # stdcall (ptr ptr) return 0,ERR_NOTIMPLEMENTED
+ 46 stdcall CoTreatAsClass(ptr ptr) CoTreatAsClass
47 stdcall CoUninitialize() CoUninitialize
48 stub CoUnloadingWOW
49 stub CoUnmarshalHresult # stdcall (ptr ptr) return 0,ERR_NOTIMPLEMENTED
50 stub CoUnmarshalInterface # stdcall (ptr ptr ptr) return 0,ERR_NOTIMPLEMENTED
51 stdcall CreateAntiMoniker(ptr) CreateAntiMoniker
52 stdcall CreateBindCtx(long ptr) CreateBindCtx
- 53 stub CreateDataAdviseHolder # stdcall (ptr) return 0,ERR_NOTIMPLEMENTED
- 54 stub CreateDataCache # stdcall (ptr ptr ptr ptr) return 0,ERR_NOTIMPLEMENTED
+ 53 stdcall CreateDataAdviseHolder(ptr) CreateDataAdviseHolder
+ 54 stdcall CreateDataCache(ptr ptr ptr ptr) CreateDataCache
55 stdcall CreateFileMoniker(wstr ptr) CreateFileMoniker
56 stdcall CreateGenericComposite(ptr ptr ptr) CreateGenericComposite
- 57 stub CreateILockBytesOnHGlobal # stdcall (ptr long ptr) return 0,ERR_NOTIMPLEMENTED
+ 57 stdcall CreateILockBytesOnHGlobal(ptr long ptr) CreateILockBytesOnHGlobal
58 stdcall CreateItemMoniker(wstr wstr ptr) CreateItemMoniker
59 stdcall CreateOleAdviseHolder(ptr) CreateOleAdviseHolder
60 stub CreatePointerMoniker # stdcall (ptr ptr) return 0,ERR_NOTIMPLEMENTED
- 61 stub CreateStreamOnHGlobal # stdcall (ptr long ptr) return 0,ERR_NOTIMPLEMENTED
+ 61 stdcall CreateStreamOnHGlobal(ptr long ptr) CreateStreamOnHGlobal
62 stub DllDebugObjectRPCHook
63 stub DllGetClassObject
64 stub DllGetClassObjectWOW
@@ -70,12 +70,12 @@
67 stdcall GetClassFile(ptr ptr) GetClassFile
68 stub GetConvertStg
69 stub GetDocumentBitStg
- 70 stub GetHGlobalFromILockBytes
+ 70 stdcall GetHGlobalFromILockBytes(ptr ptr) GetHGlobalFromILockBytes
71 stub GetHGlobalFromStream
72 stub GetHookInterface
73 stdcall GetRunningObjectTable(long ptr) GetRunningObjectTable
74 stub IIDFromString
- 75 stub IsAccelerator
+ 75 stdcall IsAccelerator(long long ptr long) IsAccelerator
76 stdcall IsEqualGUID(ptr ptr) IsEqualGUID32
77 stub IsValidIid
78 stdcall IsValidInterface(ptr) IsValidInterface
@@ -89,67 +89,67 @@
86 stub OleConvertIStorageToOLESTREAMEx
87 stub OleConvertOLESTREAMToIStorage
88 stub OleConvertOLESTREAMToIStorageEx
- 89 stub OleCreate
+ 89 stdcall OleCreate(ptr ptr long ptr ptr ptr ptr) OleCreate
90 stub OleCreateDefaultHandler
91 stub OleCreateEmbeddingHelper
- 92 stub OleCreateFromData
- 93 stub OleCreateFromFile
- 94 stub OleCreateLink
- 95 stub OleCreateLinkFromData
- 96 stub OleCreateLinkToFile
+ 92 stdcall OleCreateFromData(ptr ptr long ptr ptr ptr ptr) OleCreateFromData
+ 93 stdcall OleCreateFromFile(ptr ptr ptr long ptr ptr ptr ptr) OleCreateFromFile
+ 94 stdcall OleCreateLink(ptr ptr long ptr ptr ptr ptr) OleCreateLink
+ 95 stdcall OleCreateLinkFromData(ptr ptr long ptr ptr ptr ptr) OleCreateLinkFromData
+ 96 stdcall OleCreateLinkToFile(ptr ptr long ptr ptr ptr ptr) OleCreateLinkToFile
97 stdcall OleCreateMenuDescriptor(long ptr) OleCreateMenuDescriptor
- 98 stub OleCreateStaticFromData
+ 98 stdcall OleCreateStaticFromData(ptr ptr long ptr ptr ptr ptr) OleCreateStaticFromData
99 stdcall OleDestroyMenuDescriptor(long) OleDestroyMenuDescriptor
100 stub OleDoAutoConvert
101 stub OleDraw
-102 stub OleDuplicateData
-103 stub OleFlushClipboard
+102 stdcall OleDuplicateData(long long long) OleDuplicateData
+103 stdcall OleFlushClipboard() OleFlushClipboard
104 stub OleGetAutoConvert
-105 stdcall OleGetClipboard(ptr) OleGetClipboard32
-106 stub OleGetIconOfClass
+105 stdcall OleGetClipboard(ptr) OleGetClipboard
+106 stdcall OleGetIconOfClass(ptr ptr long) OleGetIconOfClass
107 stub OleGetIconOfFile
108 stdcall OleInitialize(ptr) OleInitialize
109 stdcall OleInitializeWOW(long) OleInitializeWOW
110 stdcall OleIsCurrentClipboard(ptr) OleIsCurrentClipboard
-111 stub OleIsRunning
-112 stub OleLoad
-113 stub OleLoadFromStream
-114 stub OleLockRunning
+111 stdcall OleIsRunning(ptr) OleIsRunning
+112 stdcall OleLoad(ptr ptr ptr ptr) OleLoad
+113 stdcall OleLoadFromStream(ptr ptr ptr) OleLoadFromStream
+114 stdcall OleLockRunning(ptr long long) OleLockRunning
115 stub OleMetafilePictFromIconAndLabel
116 stub OleNoteObjectVisible
-117 stub OleQueryCreateFromData
-118 stdcall OleQueryLinkFromData(ptr) OleQueryLinkFromData32
+117 stdcall OleQueryCreateFromData(ptr) OleQueryCreateFromData
+118 stdcall OleQueryLinkFromData(ptr) OleQueryLinkFromData
119 stub OleRegEnumFormatEtc
-120 stub OleRegEnumVerbs
-121 stdcall OleRegGetMiscStatus(ptr long ptr) OleRegGetMiscStatus32
+120 stdcall OleRegEnumVerbs(long ptr) OleRegEnumVerbs
+121 stdcall OleRegGetMiscStatus(ptr long ptr) OleRegGetMiscStatus
122 stdcall OleRegGetUserType(long long ptr) OleRegGetUserType
-123 stub OleRun
-124 stub OleSave
-125 stub OleSaveToStream
+123 stdcall OleRun(ptr) OleRun
+124 stdcall OleSave(ptr ptr long) OleSave
+125 stdcall OleSaveToStream(ptr ptr) OleSaveToStream
126 stub OleSetAutoConvert
127 stdcall OleSetClipboard(ptr) OleSetClipboard
-128 stub OleSetContainedObject
+128 stdcall OleSetContainedObject(ptr long) OleSetContainedObject
129 stdcall OleSetMenuDescriptor(long long long ptr ptr) OleSetMenuDescriptor
-130 stub OleTranslateAccelerator
+130 stdcall OleTranslateAccelerator(ptr ptr ptr) OleTranslateAccelerator
131 stdcall OleUninitialize() OleUninitialize
132 stub OpenOrCreateStream
133 stub ProgIDFromCLSID
-134 stdcall ReadClassStg(ptr ptr) ReadClassStg
-135 stdcall ReadClassStm(ptr ptr) ReadClassStm
-136 stub ReadFmtUserTypeStg
+134 stdcall ReadClassStg(ptr ptr) ReadClassStg
+135 stdcall ReadClassStm(ptr ptr) ReadClassStm
+136 stdcall ReadFmtUserTypeStg(ptr ptr ptr) ReadFmtUserTypeStg
137 stub ReadOleStg
138 stub ReadStringStream
139 stdcall RegisterDragDrop(long ptr) RegisterDragDrop
140 stdcall ReleaseStgMedium(ptr) ReleaseStgMedium
141 stdcall RevokeDragDrop(long) RevokeDragDrop
-142 stub SetConvertStg
+142 stdcall SetConvertStg(ptr long) SetConvertStg
143 stub SetDocumentBitStg
144 stdcall StgCreateDocfile(wstr long long ptr) StgCreateDocfile
-145 stub StgCreateDocfileOnILockBytes
+145 stdcall StgCreateDocfileOnILockBytes(ptr long long ptr) StgCreateDocfileOnILockBytes
146 stdcall StgIsStorageFile(wstr) StgIsStorageFile
147 stub StgIsStorageILockBytes
148 stdcall StgOpenStorage(wstr ptr long ptr long ptr) StgOpenStorage
-149 stub StgOpenStorageOnILockBytes
+149 stdcall StgOpenStorageOnILockBytes(ptr ptr long long long ptr) StgOpenStorageOnILockBytes
150 stub StgSetTimes
151 stdcall StringFromCLSID(ptr ptr) StringFromCLSID
152 stdcall StringFromGUID2(ptr ptr long) StringFromGUID2
@@ -160,7 +160,7 @@
157 stub UtGetDvtd32Info
158 stdcall WriteClassStg(ptr ptr) WriteClassStg
159 stdcall WriteClassStm(ptr ptr) WriteClassStm
-160 stub WriteFmtUserTypeStg
+160 stdcall WriteFmtUserTypeStg(ptr long ptr) WriteFmtUserTypeStg
161 stub WriteOleStg
162 stub WriteStringStream
163 stdcall CoInitializeEx(ptr long) CoInitializeEx
diff --git a/relay32/oleaut32.spec b/relay32/oleaut32.spec
index f756cc4..7b5de51 100644
--- a/relay32/oleaut32.spec
+++ b/relay32/oleaut32.spec
@@ -95,7 +95,7 @@
101 stdcall VarCyFromR4(long ptr) VarCyFromR4
102 stdcall VarCyFromR8(double ptr) VarCyFromR8
103 stdcall VarCyFromDate(double ptr) VarCyFromDate
-104 stub VarCyFromStr
+104 stdcall VarCyFromStr(ptr long long ptr) VarCyFromStr
105 stub VarCyFromDisp
106 stdcall VarCyFromBool(long ptr) VarCyFromBool
108 stdcall VarBstrFromUI1(long long long ptr) VarBstrFromUI1
@@ -103,7 +103,7 @@
110 stdcall VarBstrFromI4(long long long ptr) VarBstrFromI4
111 stdcall VarBstrFromR4(long long long ptr) VarBstrFromR4
112 stdcall VarBstrFromR8(double long long ptr) VarBstrFromR8
-113 stub VarBstrFromCy
+113 stdcall VarBstrFromCy(double long long ptr) VarBstrFromCy
114 stdcall VarBstrFromDate(long long long ptr) VarBstrFromDate
115 stub VarBstrFromDisp
116 stdcall VarBstrFromBool(long long long ptr) VarBstrFromBool
diff --git a/relay32/user32.spec b/relay32/user32.spec
index d33151f..21ed35c 100644
--- a/relay32/user32.spec
+++ b/relay32/user32.spec
@@ -548,7 +548,7 @@
544 stub TileChildWindows
545 stdcall TileWindows(long long ptr long ptr) TileWindows
546 stdcall ToAscii(long long ptr ptr long) ToAscii
-547 stub ToAsciiEx
+547 stdcall ToAsciiEx(long long ptr ptr long long) ToAsciiEx
548 stdcall ToUnicode(long long ptr wstr long long) ToUnicode
549 stdcall TrackPopupMenu(long long long long long long ptr) TrackPopupMenu
550 stdcall TrackPopupMenuEx(long long long long long ptr) TrackPopupMenuEx
@@ -575,8 +575,8 @@
571 stdcall ValidateRect(long ptr) ValidateRect
572 stdcall ValidateRgn(long long) ValidateRgn
573 stdcall VkKeyScanA(long) VkKeyScanA
-574 stub VkKeyScanExA
-575 stub VkKeyScanExW
+574 stdcall VkKeyScanExA(long long) VkKeyScanExA
+575 stdcall VkKeyScanExW(long long) VkKeyScanExW
576 stdcall VkKeyScanW(long) VkKeyScanW
577 stdcall WaitForInputIdle(long long) WaitForInputIdle
578 stdcall WaitMessage() WaitMessage
diff --git a/windows/input.c b/windows/input.c
index 4d34e4b..3ddee08 100644
--- a/windows/input.c
+++ b/windows/input.c
@@ -744,6 +744,24 @@
return VkKeyScanA((CHAR)cChar); /* FIXME: check unicode */
}
+/**********************************************************************
+ * VkKeyScanExA (USER32.574)
+ */
+WORD WINAPI VkKeyScanExA(CHAR cChar, HKL dwhkl)
+{
+ /* FIXME: complete workaround this is */
+ return VkKeyScan16(cChar);
+}
+
+/******************************************************************************
+ * VkKeyScanExW (USER32.575)
+ */
+WORD WINAPI VkKeyScanExW(WCHAR cChar, HKL dwhkl)
+{
+ /* FIXME: complete workaround this is */
+ return VkKeyScanA((CHAR)cChar); /* FIXME: check unicode */
+}
+
/******************************************************************************
* GetKeyboardType32 (USER32.255)
*/
@@ -861,6 +879,16 @@
return ToAscii16(virtKey,scanCode,lpKeyState,lpChar,flags);
}
+/****************************************************************************
+ * ToAscii32 (USER32.547)
+ */
+INT WINAPI ToAsciiEx( UINT virtKey, UINT scanCode, LPBYTE lpKeyState,
+ LPWORD lpChar, UINT flags, HKL dwhkl )
+{
+ /* FIXME: need true implementation */
+ return ToAscii16(virtKey,scanCode,lpKeyState,lpChar,flags);
+}
+
/**********************************************************************
* ActivateKeyboardLayout32 (USER32.1)
*