From 6e801f790b79ef43eae279b5f4a4a7ba00ab16ea Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 6 Mar 2016 16:11:19 +0000 Subject: [PATCH] [OLEPRO32] Sync with Wine Staging 1.9.4. CORE-10912 svn path=/trunk/; revision=70961 --- reactos/dll/win32/olepro32/CMakeLists.txt | 7 + reactos/dll/win32/olepro32/olepro.idl | 270 ++++++++++++++++++++++ reactos/dll/win32/olepro32/olepro_t.rgs | 32 +++ reactos/dll/win32/olepro32/version.rc | 3 + reactos/media/doc/README.WINE | 2 +- 5 files changed, 313 insertions(+), 1 deletion(-) create mode 100644 reactos/dll/win32/olepro32/olepro.idl create mode 100644 reactos/dll/win32/olepro32/olepro_t.rgs diff --git a/reactos/dll/win32/olepro32/CMakeLists.txt b/reactos/dll/win32/olepro32/CMakeLists.txt index 2376319134c..3a5adc0ce53 100644 --- a/reactos/dll/win32/olepro32/CMakeLists.txt +++ b/reactos/dll/win32/olepro32/CMakeLists.txt @@ -2,11 +2,18 @@ add_definitions(-D__WINESRC__) include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) spec2def(olepro32.dll olepro32.spec) +add_typelib(olepro.idl) list(APPEND SOURCE olepro32stubs.c ${CMAKE_CURRENT_BINARY_DIR}/olepro32.def) +list(APPEND olepro32_rc_deps + ${CMAKE_CURRENT_SOURCE_DIR}/olepro_t.rgs + ${CMAKE_CURRENT_BINARY_DIR}/olepro.tlb) + +set_source_files_properties(version.rc PROPERTIES OBJECT_DEPENDS "${olepro32_rc_deps}") + add_library(olepro32 SHARED ${SOURCE} version.rc) set_module_type(olepro32 win32dll) target_link_libraries(olepro32 wine) diff --git a/reactos/dll/win32/olepro32/olepro.idl b/reactos/dll/win32/olepro32/olepro.idl new file mode 100644 index 00000000000..482dede2394 --- /dev/null +++ b/reactos/dll/win32/olepro32/olepro.idl @@ -0,0 +1,270 @@ +/* + * Copyright (C) 2003 Robert Shearman + * 2005 Huw Davies + * + * 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 + * + */ + +#pragma makedep regtypelib + +import "oaidl.idl"; + +#include + +[ + uuid(bef6e001-a874-101a-8bba-00aa00300cab), + version(2.0), + helpstring("Standard OLE Types") +] +library StdType +{ + importlib("stdole2.tlb"); + + typedef [uuid(66504301-BE0F-101A-8BBB-00AA00300CAB), public] + unsigned long OLE_COLOR; + + typedef [uuid(66504302-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_XPOS_PIXELS; + + typedef [uuid(66504303-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_YPOS_PIXELS; + + typedef [uuid(66504304-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_XSIZE_PIXELS; + + typedef [uuid(66504305-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_YSIZE_PIXELS; + + typedef [uuid(66504306-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_XPOS_HIMETRIC; + + typedef [uuid(66504307-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_YPOS_HIMETRIC; + + typedef [uuid(66504308-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_XSIZE_HIMETRIC; + + typedef [uuid(66504309-BE0F-101A-8BBB-00AA00300CAB), public] + long OLE_YSIZE_HIMETRIC; + + typedef [uuid(BF030640-9069-101B-AE2D-08002B2EC713), public] + float OLE_XPOS_CONTAINER; + + typedef [uuid(BF030641-9069-101B-AE2D-08002B2EC713), public] + float OLE_YPOS_CONTAINER; + + typedef [uuid(BF030642-9069-101B-AE2D-08002B2EC713), public] + float OLE_XSIZE_CONTAINER; + + typedef [uuid(BF030643-9069-101B-AE2D-08002B2EC713), public] + float OLE_YSIZE_CONTAINER; + + typedef [uuid(66504313-BE0F-101A-8BBB-00AA00300CAB), public] + int OLE_HANDLE; + + typedef [uuid(6650430B-BE0F-101A-8BBB-00AA00300CAB), public] + VARIANT_BOOL OLE_OPTEXCLUSIVE; + + typedef [uuid(BF030644-9069-101B-AE2D-08002B2EC713), public] + VARIANT_BOOL OLE_CANCELBOOL; + + typedef [uuid(BF030645-9069-101B-AE2D-08002B2EC713), public] + VARIANT_BOOL OLE_ENABLEDEFAULTBOOL; + + [ + uuid(6650430A-BE0F-101A-8BBB-00AA00300CAB) + ] + enum OLE_TRISTATE { + Unchecked = 0, + Checked = 1, + Gray = 2 + }; + + typedef [uuid(6650430D-BE0F-101A-8BBB-00AA00300CAB), public] + BSTR FONTNAME; + + typedef [uuid(6650430E-BE0F-101A-8BBB-00AA00300CAB), public] + CURRENCY FONTSIZE; + + typedef [uuid(6650430F-BE0F-101A-8BBB-00AA00300CAB), public] + VARIANT_BOOL FONTBOLD; + + typedef [uuid(66504310-BE0F-101A-8BBB-00AA00300CAB), public] + VARIANT_BOOL FONTITALIC; + + typedef [uuid(66504311-BE0F-101A-8BBB-00AA00300CAB), public] + VARIANT_BOOL FONTUNDERSCORE; + + typedef [uuid(66504312-BE0F-101A-8BBB-00AA00300CAB), public] + VARIANT_BOOL FONTSTRIKETHROUGH; + + + [ + odl, + uuid(BEF6E002-A874-101A-8BBA-00AA00300CAB), + helpstring("Font Object"), + hidden + ] + interface IFont : IUnknown { + [propget] HRESULT Name([out, retval] BSTR *pname); + [propput] HRESULT Name([in] BSTR pname); + + [propget] HRESULT Size([out, retval] CURRENCY *psize); + [propput] HRESULT Size([in] CURRENCY psize); + + [propget] HRESULT Bold([out, retval] VARIANT_BOOL *pbold); + [propput] HRESULT Bold([in] VARIANT_BOOL pbold); + + [propget] HRESULT Italic([out, retval] VARIANT_BOOL *pitalic); + [propput] HRESULT Italic([in] VARIANT_BOOL pitalic); + + [propget] HRESULT Underline([out, retval] VARIANT_BOOL *punderline); + [propput] HRESULT Underline([in] VARIANT_BOOL punderline); + + [propget] HRESULT Strikethrough([out, retval] VARIANT_BOOL *pstrikethrough); + [propput] HRESULT Strikethrough([in] VARIANT_BOOL pstrikethrough); + + [propget] HRESULT Weight([out, retval] short *pweight); + [propput] HRESULT Weight([in] short pweight); + + [propget] HRESULT Charset([out, retval] short *pcharset); + [propput] HRESULT Charset([in] short pcharset); + + [propget] HRESULT hFont([out, retval] OLE_HANDLE *phfont); + + HRESULT Clone([out] IFont **ppfont); + + HRESULT IsEqual([in] IFont *pfontOther); + + HRESULT SetRatio([in] long cyLogical, [in] long cyHimetric); + + HRESULT AddRefHfont([in] OLE_HANDLE hFont); + + HRESULT ReleaseHfont([in] OLE_HANDLE hFont); + }; + + + [ + odl, + uuid(BEF6E003-A874-101A-8BBA-00AA00300CAB) + ] + dispinterface Font { + properties: + [id(DISPID_FONT_NAME)] BSTR Name; + [id(DISPID_FONT_SIZE)] CURRENCY Size; + [id(DISPID_FONT_BOLD)] VARIANT_BOOL Bold; + [id(DISPID_FONT_ITALIC)] VARIANT_BOOL Italic; + [id(DISPID_FONT_UNDER)] VARIANT_BOOL Underline; + [id(DISPID_FONT_STRIKE)] VARIANT_BOOL Strikethrough; + [id(DISPID_FONT_WEIGHT)] short Weight; + [id(DISPID_FONT_CHARSET)] short Charset; + methods: + } + + typedef [public] Font IFontDisp; + + [ + uuid(0BE35203-8F91-11CE-9DE3-00AA004BB851) + ] + coclass StdFont { + [default] dispinterface Font; + interface IFont; + }; + + [ + odl, + uuid(7BF80980-BF32-101A-8BBB-00AA00300CAB), + helpstring("Picture Object"), + hidden + ] + interface IPicture : IUnknown { + [propget] HRESULT Handle([out, retval] OLE_HANDLE *phandle); + + [propget] HRESULT hPal([out, retval] OLE_HANDLE *phpal); + + [propget] HRESULT Type([out, retval] short *ptype); + + [propget] HRESULT Width([out, retval] OLE_XSIZE_HIMETRIC *pwidth); + + [propget] HRESULT Height([out, retval] OLE_YSIZE_HIMETRIC *pheight); + + HRESULT Render([in] int hdc, + [in] long x, + [in] long y, + [in] long cx, + [in] long cy, + [in] OLE_XPOS_HIMETRIC xSrc, + [in] OLE_YPOS_HIMETRIC ySrc, + [in] OLE_XSIZE_HIMETRIC cxSrc, + [in] OLE_YSIZE_HIMETRIC cySrc, + [in] void *prcWBounds); + + [propput] HRESULT hPal([in] OLE_HANDLE phpal); + + [propget] HRESULT CurDC([out, retval] int *phdcOut); + + HRESULT SelectPicture([in] int hdcIn, + [out] int *phdcOut, + [out] OLE_HANDLE *phbmpOut); + + [propget] HRESULT KeepOriginalFormat([out, retval] VARIANT_BOOL *pfkeep); + [propput] HRESULT KeepOriginalFormat([in] VARIANT_BOOL pfkeep); + + HRESULT PictureChanged(); + + HRESULT SaveAsFile([in] void *pstm, + [in] VARIANT_BOOL fSaveMemCopy, + [out] long *pcbSize); + + [propget] HRESULT Attributes([out, retval] long *pdwAttr); + + HRESULT SetHdc([in] OLE_HANDLE hdc); + }; + + [ + uuid(7BF80981-BF32-101A-8BBB-00AA00300CAB) + ] + dispinterface Picture { + properties: + [id(DISPID_PICT_HANDLE), readonly] OLE_HANDLE Handle; + [id(DISPID_PICT_HPAL)] OLE_HANDLE hPal; + [id(DISPID_PICT_TYPE), readonly] short Type; + [id(DISPID_PICT_WIDTH), readonly] OLE_XSIZE_HIMETRIC Width; + [id(DISPID_PICT_HEIGHT), readonly] OLE_YSIZE_HIMETRIC Height; + methods: + [id(DISPID_PICT_RENDER)] + void Render(int hdc, + long x, + long y, + long cx, + long cy, + OLE_XPOS_HIMETRIC xSrc, + OLE_YPOS_HIMETRIC ySrc, + OLE_XSIZE_HIMETRIC cxSrc, + OLE_YSIZE_HIMETRIC cySrc, + void *prcWBounds); + }; + + typedef [public] Picture IPictureDisp; + + [ + uuid(0BE35204-8F91-11CE-9DE3-00AA004BB851) + ] + coclass StdPicture { + [default] dispinterface Picture; + interface IPicture; + }; +}; diff --git a/reactos/dll/win32/olepro32/olepro_t.rgs b/reactos/dll/win32/olepro32/olepro_t.rgs new file mode 100644 index 00000000000..e1e57c7b632 --- /dev/null +++ b/reactos/dll/win32/olepro32/olepro_t.rgs @@ -0,0 +1,32 @@ +HKCR +{ + NoRemove Typelib + { + NoRemove '{BEF6E001-A874-101A-8BBA-00AA00300CAB}' + { + '2.0' = s 'Standard OLE Types' + { + '0' { win32 = s '%MODULE%' } + FLAGS = s '0' + } + } + } + NoRemove Interface + { + '{BEF6E003-A874-101A-8BBA-00AA00300CAB}' = s 'Font' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{BEF6E001-A874-101A-8BBA-00AA00300CAB}' { val Version = s '2.0' } + } + '{7BF80981-BF32-101A-8BBB-00AA00300CAB}' = s 'Picture' + { + ProxyStubClsid = s '{00020424-0000-0000-C000-000000000046}' + ProxyStubClsid32 = s '{00020424-0000-0000-C000-000000000046}' + TypeLib = s '{BEF6E001-A874-101A-8BBA-00AA00300CAB}' { val Version = s '2.0' } + } + } + NoRemove CLSID + { + } +} diff --git a/reactos/dll/win32/olepro32/version.rc b/reactos/dll/win32/olepro32/version.rc index 5b27bf3e3a3..9806d1790e4 100644 --- a/reactos/dll/win32/olepro32/version.rc +++ b/reactos/dll/win32/olepro32/version.rc @@ -16,6 +16,9 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ +1 TYPELIB olepro.tlb +1 WINE_REGISTRY olepro_t.rgs + #define WINE_FILEDESCRIPTION_STR "Wine olepro32.dll" #define WINE_FILENAME_STR "olepro32.dll" #define WINE_FILEVERSION 5,0,4522,0 diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index dd0a4ab6ddc..df229e1e77f 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -147,7 +147,7 @@ reactos/dll/win32/oleacc # Synced to WineStaging-1.7.55 reactos/dll/win32/oleaut32 # Synced to WineStaging-1.9.4 reactos/dll/win32/olecli32 # Synced to WineStaging-1.7.55 reactos/dll/win32/oledlg # Synced to WineStaging-1.9.4 -reactos/dll/win32/olepro32 # Synced to WineStaging-1.7.55 +reactos/dll/win32/olepro32 # Synced to WineStaging-1.9.4 reactos/dll/win32/olesvr32 # Synced to WineStaging-1.7.55 reactos/dll/win32/olethk32 # Synced to WineStaging-1.7.55 reactos/dll/win32/pdh # Synced to WineStaging-1.9.4