Commit 7769b058 authored by Alexandre Julliard's avatar Alexandre Julliard

oleaut32: Convert dll registration to the new IRegistrar mechanism.

parent 4d966be6
...@@ -3,7 +3,7 @@ IMPORTLIB = oleaut32 ...@@ -3,7 +3,7 @@ IMPORTLIB = oleaut32
IMPORTS = uuid ole32 rpcrt4 user32 gdi32 advapi32 IMPORTS = uuid ole32 rpcrt4 user32 gdi32 advapi32
DELAYIMPORTS = comctl32 urlmon windowscodecs DELAYIMPORTS = comctl32 urlmon windowscodecs
EXTRADEFS = -D_OLEAUT32_ -DCOM_NO_WINDOWS_H \ EXTRADEFS = -D_OLEAUT32_ -DCOM_NO_WINDOWS_H \
-DENTRY_PREFIX=OLEAUTPS_ -DPROXY_DELEGATION -DREGISTER_PROXY_DLL \ -DENTRY_PREFIX=OLEAUTPS_ -DPROXY_DELEGATION -DWINE_REGISTER_DLL \
-DPROXY_CLSID_IS="{0xb196b286,0xbab4,0x101a,{0xb6,0x9c,0x00,0xaa,0x00,0x34,0x1d,0x07}}" -DPROXY_CLSID_IS="{0xb196b286,0xbab4,0x101a,{0xb6,0x9c,0x00,0xaa,0x00,0x34,0x1d,0x07}}"
C_SRCS = \ C_SRCS = \
...@@ -15,7 +15,6 @@ C_SRCS = \ ...@@ -15,7 +15,6 @@ C_SRCS = \
olepicture.c \ olepicture.c \
olepropframe.c \ olepropframe.c \
recinfo.c \ recinfo.c \
regsvr.c \
safearray.c \ safearray.c \
tmarshal.c \ tmarshal.c \
typelib.c \ typelib.c \
...@@ -53,7 +52,7 @@ RC_SRCS = \ ...@@ -53,7 +52,7 @@ RC_SRCS = \
oleaut32_Tr.rc \ oleaut32_Tr.rc \
oleaut32_Uk.rc \ oleaut32_Uk.rc \
oleaut32_Zh.rc \ oleaut32_Zh.rc \
version.rc rsrc.rc
IDL_P_SRCS = \ IDL_P_SRCS = \
oleaut32_oaidl.idl \ oleaut32_oaidl.idl \
......
...@@ -33,9 +33,11 @@ ...@@ -33,9 +33,11 @@
#include "ole2.h" #include "ole2.h"
#include "olectl.h" #include "olectl.h"
#include "oleauto.h" #include "oleauto.h"
#include "initguid.h"
#include "typelib.h" #include "typelib.h"
#include "wine/debug.h" #include "wine/debug.h"
#include "wine/unicode.h"
WINE_DEFAULT_DEBUG_CHANNEL(ole); WINE_DEFAULT_DEBUG_CHANNEL(ole);
...@@ -694,6 +696,8 @@ HRESULT WINAPI OleTranslateColor( ...@@ -694,6 +696,8 @@ HRESULT WINAPI OleTranslateColor(
extern HRESULT WINAPI OLEAUTPS_DllGetClassObject(REFCLSID, REFIID, LPVOID *) DECLSPEC_HIDDEN; extern HRESULT WINAPI OLEAUTPS_DllGetClassObject(REFCLSID, REFIID, LPVOID *) DECLSPEC_HIDDEN;
extern BOOL WINAPI OLEAUTPS_DllMain(HINSTANCE, DWORD, LPVOID) DECLSPEC_HIDDEN; extern BOOL WINAPI OLEAUTPS_DllMain(HINSTANCE, DWORD, LPVOID) DECLSPEC_HIDDEN;
extern HRESULT WINAPI OLEAUTPS_DllRegisterServer(void) DECLSPEC_HIDDEN;
extern HRESULT WINAPI OLEAUTPS_DllUnregisterServer(void) DECLSPEC_HIDDEN;
extern GUID const CLSID_PSFactoryBuffer DECLSPEC_HIDDEN; extern GUID const CLSID_PSFactoryBuffer DECLSPEC_HIDDEN;
extern void _get_STDFONT_CF(LPVOID *); extern void _get_STDFONT_CF(LPVOID *);
...@@ -832,6 +836,58 @@ BOOL WINAPI DllMain(HINSTANCE hInstDll, DWORD fdwReason, LPVOID lpvReserved) ...@@ -832,6 +836,58 @@ BOOL WINAPI DllMain(HINSTANCE hInstDll, DWORD fdwReason, LPVOID lpvReserved)
return OLEAUTPS_DllMain( hInstDll, fdwReason, lpvReserved ); return OLEAUTPS_DllMain( hInstDll, fdwReason, lpvReserved );
} }
static HRESULT register_typelib( const WCHAR *name )
{
static const WCHAR backslash[] = {'\\',0};
HRESULT hr;
ITypeLib *typelib;
WCHAR *path;
DWORD len;
len = GetSystemDirectoryW( NULL, 0 ) + strlenW( name ) + 1;
if (!(path = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ))) return E_OUTOFMEMORY;
GetSystemDirectoryW( path, len );
strcatW( path, backslash );
strcatW( path, name );
hr = LoadTypeLib( path, &typelib );
if (SUCCEEDED(hr))
{
hr = RegisterTypeLib( typelib, path, NULL );
ITypeLib_Release( typelib );
}
HeapFree( GetProcessHeap(), 0, path );
return hr;
}
/***********************************************************************
* DllRegisterServer (OLEAUT32.@)
*/
HRESULT WINAPI DllRegisterServer(void)
{
HRESULT hr;
TRACE("\n");
hr = OLEAUTPS_DllRegisterServer();
if (SUCCEEDED(hr))
{
const WCHAR stdole32W[] = {'s','t','d','o','l','e','3','2','.','t','l','b',0};
const WCHAR stdole2W[] = {'s','t','d','o','l','e','2','.','t','l','b',0};
hr = register_typelib( stdole2W );
if (SUCCEEDED(hr)) hr = register_typelib( stdole32W );
}
return hr;
}
/***********************************************************************
* DllUnregisterServer (OLEAUT32.@)
*/
HRESULT WINAPI DllUnregisterServer(void)
{
return OLEAUTPS_DllUnregisterServer();
}
/*********************************************************************** /***********************************************************************
* OleIconToCursor (OLEAUT32.415) * OleIconToCursor (OLEAUT32.415)
*/ */
......
HKCR
{
NoRemove CLSID
{
ForceRemove '{0000002F-0000-0000-C000-000000000046}' = s 'CLSID_RecordInfo'
{
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Both' }
}
ForceRemove '{00020420-0000-0000-C000-000000000046}' = s 'PSDispatch'
{
InprocServer = s 'ole2disp.dll'
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Both' }
}
ForceRemove '{00020421-0000-0000-C000-000000000046}' = s 'PSEnumVariant'
{
InprocServer = s 'ole2disp.dll'
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Both' }
}
ForceRemove '{00020422-0000-0000-C000-000000000046}' = s 'PSTypeInfo'
{
InprocServer = s 'ole2disp.dll'
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Both' }
}
ForceRemove '{00020423-0000-0000-C000-000000000046}' = s 'PSTypeLib'
{
InprocServer = s 'ole2disp.dll'
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Both' }
}
ForceRemove '{00020424-0000-0000-C000-000000000046}' = s 'PSOAInterface'
{
InprocServer = s 'ole2disp.dll'
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Both' }
}
ForceRemove '{00020425-0000-0000-C000-000000000046}' = s 'PSTypeComp'
{
InprocServer = s 'ole2disp.dll'
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Both' }
}
ForceRemove '{DF0B3D60-548F-101B-8E65-08002B2BD119}' = s 'PSSupportErrorInfo'
{
InprocServer = s 'ole2disp.dll'
InprocServer32 = s '%MODULE%'
}
ForceRemove '{0BE35203-8F91-11CE-9DE3-00AA004BB851}' = s 'CLSID_StdFont'
{
CLSID = s 'Standard Font'
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Both' }
ProgId = s 'StdFont'
}
ForceRemove '{46763EE0-CAB2-11CE-8C20-00AA0051E5D4}' = s 'Obsolete Font'
{
CLSID = s 'Obsolete Font'
InprocServer32 = s '%MODULE%'
ProgId = s 'OldFont'
}
ForceRemove '{0BE35204-8F91-11CE-9DE3-00AA004BB851}' = s 'CLSID_StdPict'
{
CLSID = s 'Standard Picture'
InprocServer32 = s '%MODULE%' { val ThreadingModel = s 'Apartment' }
ProgId = s 'StdPicture'
}
}
NoRemove Interface
{
'{0000002E-0000-0000-C000-000000000046}'
{
ProxyStubClsid32 = s '{00020420-0000-0000-C000-000000000046}'
}
'{00020400-0000-0000-C000-000000000046}'
{
ProxyStubClsid = s '{00020420-0000-0000-C000-000000000046}'
ProxyStubClsid32 = s '{00020420-0000-0000-C000-000000000046}'
}
'{00020401-0000-0000-C000-000000000046}'
{
ProxyStubClsid = s '{00020422-0000-0000-C000-000000000046}'
ProxyStubClsid32 = s '{00020422-0000-0000-C000-000000000046}'
}
'{00020402-0000-0000-C000-000000000046}'
{
ProxyStubClsid = s '{00020423-0000-0000-C000-000000000046}'
ProxyStubClsid32 = s '{00020423-0000-0000-C000-000000000046}'
}
'{00020403-0000-0000-C000-000000000046}'
{
ProxyStubClsid = s '{00020425-0000-0000-C000-000000000046}'
ProxyStubClsid32 = s '{00020425-0000-0000-C000-000000000046}'
}
'{00020404-0000-0000-C000-000000000046}'
{
ProxyStubClsid = s '{00020421-0000-0000-C000-000000000046}'
ProxyStubClsid32 = s '{00020421-0000-0000-C000-000000000046}'
}
'{00020411-0000-0000-C000-000000000046}'
{
ProxyStubClsid32 = s '{00020420-0000-0000-C000-000000000046}'
}
'{00020412-0000-0000-C000-000000000046}'
{
ProxyStubClsid32 = s '{00020420-0000-0000-C000-000000000046}'
}
'{DF0B3D60-548F-101B-8E65-08002B2BD119}'
{
ProxyStubClsid32 = s '{00020420-0000-0000-C000-000000000046}'
}
}
ForceRemove StdFont { CLSID = s '{0BE35203-8F91-11CE-9DE3-00AA004BB851}' }
ForceRemove OldFont { CLSID = s '{46763EE0-CAB2-11CE-8C20-00AA0051E5D4}' }
ForceRemove StdPicture { CLSID = s '{0BE35204-8F91-11CE-9DE3-00AA004BB851}' }
}
...@@ -60,6 +60,7 @@ ...@@ -60,6 +60,7 @@
#include "oleauto.h" #include "oleauto.h"
#include "connpt.h" #include "connpt.h"
#include "urlmon.h" #include "urlmon.h"
#include "initguid.h"
#include "wincodec.h" #include "wincodec.h"
#include "wine/debug.h" #include "wine/debug.h"
#include "wine/unicode.h" #include "wine/unicode.h"
......
...@@ -16,6 +16,9 @@ ...@@ -16,6 +16,9 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/ */
/* @makedep: oleaut32.rgs */
1 WINE_REGISTRY oleaut32.rgs
#define WINE_OLESELFREGISTER #define WINE_OLESELFREGISTER
#define WINE_FILEDESCRIPTION_STR "Wine OLE dll" #define WINE_FILEDESCRIPTION_STR "Wine OLE dll"
#define WINE_FILENAME_STR "oleaut32.dll" #define WINE_FILENAME_STR "oleaut32.dll"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment