Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
16b5e6b9
Commit
16b5e6b9
authored
Dec 02, 2008
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ole32: Register interfaces through dlldata.c as far as possible.
parent
bbac6de7
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
22 additions
and
50 deletions
+22
-50
Makefile.in
dlls/ole32/Makefile.in
+1
-1
compobj.c
dlls/ole32/compobj.c
+4
-7
compobj_private.h
dlls/ole32/compobj_private.h
+4
-2
ole2.c
dlls/ole32/ole2.c
+4
-4
regsvr.c
dlls/ole32/regsvr.c
+9
-36
No files found.
dlls/ole32/Makefile.in
View file @
16b5e6b9
...
...
@@ -6,7 +6,7 @@ MODULE = ole32.dll
IMPORTLIB
=
ole32
IMPORTS
=
uuid advapi32 user32 gdi32 rpcrt4 kernel32 ntdll
EXTRADEFS
=
-D_OLE32_
-DCOM_NO_WINDOWS_H
\
-DENTRY_PREFIX
=
OLE32_
-DPROXY_CLSID
=
CLSID_PSFactoryBuffer
-DENTRY_PREFIX
=
OLE32_
-DPROXY_CLSID
=
CLSID_PSFactoryBuffer
-DREGISTER_PROXY_DLL
C_SRCS
=
\
antimoniker.c
\
...
...
dlls/ole32/compobj.c
View file @
16b5e6b9
...
...
@@ -63,8 +63,6 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
ole
);
HINSTANCE
OLE32_hInstance
=
0
;
#define ARRAYSIZE(array) (sizeof(array)/sizeof((array)[0]))
/****************************************************************************
...
...
@@ -209,14 +207,14 @@ static void COMPOBJ_InitProcess( void )
*/
memset
(
&
wclass
,
0
,
sizeof
(
wclass
));
wclass
.
lpfnWndProc
=
apartment_wndproc
;
wclass
.
hInstance
=
OLE32_hInstance
;
wclass
.
hInstance
=
hProxyDll
;
wclass
.
lpszClassName
=
wszAptWinClass
;
RegisterClassW
(
&
wclass
);
}
static
void
COMPOBJ_UninitProcess
(
void
)
{
UnregisterClassW
(
wszAptWinClass
,
OLE32_hInstance
);
UnregisterClassW
(
wszAptWinClass
,
hProxyDll
);
}
static
void
COM_TlsDestroy
(
void
)
...
...
@@ -729,7 +727,7 @@ HRESULT apartment_createwindowifneeded(struct apartment *apt)
{
HWND
hwnd
=
CreateWindowW
(
wszAptWinClass
,
NULL
,
0
,
0
,
0
,
0
,
0
,
HWND_MESSAGE
,
0
,
OLE32_hInstance
,
NULL
);
HWND_MESSAGE
,
0
,
hProxyDll
,
NULL
);
if
(
!
hwnd
)
{
ERR
(
"CreateWindow failed with error %d
\n
"
,
GetLastError
());
...
...
@@ -3861,7 +3859,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
switch
(
fdwReason
)
{
case
DLL_PROCESS_ATTACH
:
OLE32_hInstance
=
hinstDLL
;
hProxyDll
=
hinstDLL
;
COMPOBJ_InitProcess
();
if
(
TRACE_ON
(
ole
))
CoRegisterMallocSpy
((
LPVOID
)
-
1
);
break
;
...
...
@@ -3872,7 +3870,6 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
COMPOBJ_UninitProcess
();
RPC_UnregisterAllChannelHooks
();
COMPOBJ_DllList_Free
();
OLE32_hInstance
=
0
;
break
;
case
DLL_THREAD_DETACH
:
...
...
dlls/ole32/compobj_private.h
View file @
16b5e6b9
...
...
@@ -303,14 +303,16 @@ static inline GUID COM_CurrentCausalityId(void)
# define DEBUG_SET_CRITSEC_NAME(cs, name) (cs)->DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": " name)
# define DEBUG_CLEAR_CRITSEC_NAME(cs) (cs)->DebugInfo->Spare[0] = 0
extern
HINSTANCE
OLE32_hInstance
;
/* FIXME: make static */
#define CHARS_IN_GUID 39
/* including NULL */
#define WINE_CLSCTX_DONT_HOST 0x80000000
/* from dlldata.c */
extern
HINSTANCE
hProxyDll
DECLSPEC_HIDDEN
;
extern
BOOL
WINAPI
OLE32_DllMain
(
HINSTANCE
hinstDLL
,
DWORD
fdwReason
,
LPVOID
fImpLoad
)
DECLSPEC_HIDDEN
;
extern
HRESULT
WINAPI
OLE32_DllGetClassObject
(
REFCLSID
rclsid
,
REFIID
iid
,
LPVOID
*
ppv
)
DECLSPEC_HIDDEN
;
extern
HRESULT
WINAPI
OLE32_DllRegisterServer
(
void
)
DECLSPEC_HIDDEN
;
extern
HRESULT
WINAPI
OLE32_DllUnregisterServer
(
void
)
DECLSPEC_HIDDEN
;
/* Exported non-interface Data Advise Holder functions */
HRESULT
DataAdviseHolder_OnConnect
(
IDataAdviseHolder
*
iface
,
IDataObject
*
pDelegate
);
...
...
dlls/ole32/ole2.c
View file @
16b5e6b9
...
...
@@ -2119,19 +2119,19 @@ static void OLEDD_TrackMouseMove(TrackerWindowInfo* trackerInfo)
{
if
(
*
trackerInfo
->
pdwEffect
&
DROPEFFECT_MOVE
)
{
SetCursor
(
LoadCursorA
(
OLE32_hInstance
,
MAKEINTRESOURCEA
(
1
)));
SetCursor
(
LoadCursorA
(
hProxyDll
,
MAKEINTRESOURCEA
(
1
)));
}
else
if
(
*
trackerInfo
->
pdwEffect
&
DROPEFFECT_COPY
)
{
SetCursor
(
LoadCursorA
(
OLE32_hInstance
,
MAKEINTRESOURCEA
(
2
)));
SetCursor
(
LoadCursorA
(
hProxyDll
,
MAKEINTRESOURCEA
(
2
)));
}
else
if
(
*
trackerInfo
->
pdwEffect
&
DROPEFFECT_LINK
)
{
SetCursor
(
LoadCursorA
(
OLE32_hInstance
,
MAKEINTRESOURCEA
(
3
)));
SetCursor
(
LoadCursorA
(
hProxyDll
,
MAKEINTRESOURCEA
(
3
)));
}
else
{
SetCursor
(
LoadCursorA
(
OLE32_hInstance
,
MAKEINTRESOURCEA
(
0
)));
SetCursor
(
LoadCursorA
(
hProxyDll
,
MAKEINTRESOURCEA
(
0
)));
}
}
}
...
...
dlls/ole32/regsvr.c
View file @
16b5e6b9
...
...
@@ -509,69 +509,38 @@ static struct regsvr_coclass const coclass_list[] = {
* interface list
*/
#define INTERFACE_ENTRY(interface, base, clsid32, clsid16) { &IID_##interface, #interface, base, sizeof(interface##Vtbl)/sizeof(void*), clsid16, clsid32 }
#define BAS_INTERFACE_ENTRY(interface, base) INTERFACE_ENTRY(interface, &IID_##base, &CLSID_PSFactoryBuffer, NULL)
#define STD_INTERFACE_ENTRY(interface) INTERFACE_ENTRY(interface, NULL, &CLSID_PSFactoryBuffer, NULL)
#define ACTX_INTERFACE_ENTRY(interface) INTERFACE_ENTRY(interface, NULL, &CLSID_PSFactoryBuffer_actxprxy, NULL)
#define LCL_INTERFACE_ENTRY(interface) INTERFACE_ENTRY(interface, NULL, NULL, NULL)
#define INTERFACE_ENTRY(interface, base, clsid32) { &IID_##interface, #interface, base, sizeof(interface##Vtbl)/sizeof(void*), NULL, clsid32 }
#define BAS_INTERFACE_ENTRY(interface, base) INTERFACE_ENTRY(interface, &IID_##base, NULL)
#define ACTX_INTERFACE_ENTRY(interface) INTERFACE_ENTRY(interface, NULL, &CLSID_PSFactoryBuffer_actxprxy)
#define LCL_INTERFACE_ENTRY(interface) INTERFACE_ENTRY(interface, NULL, NULL)
static
const
struct
regsvr_interface
interface_list
[]
=
{
LCL_INTERFACE_ENTRY
(
IUnknown
),
STD_INTERFACE_ENTRY
(
IClassFactory
),
LCL_INTERFACE_ENTRY
(
IMalloc
),
LCL_INTERFACE_ENTRY
(
IMarshal
),
STD_INTERFACE_ENTRY
(
ILockBytes
),
STD_INTERFACE_ENTRY
(
IStorage
),
STD_INTERFACE_ENTRY
(
IStream
),
STD_INTERFACE_ENTRY
(
IEnumSTATSTG
),
STD_INTERFACE_ENTRY
(
IBindCtx
),
BAS_INTERFACE_ENTRY
(
IMoniker
,
IPersistStream
),
STD_INTERFACE_ENTRY
(
IRunningObjectTable
),
STD_INTERFACE_ENTRY
(
IRootStorage
),
LCL_INTERFACE_ENTRY
(
IMessageFilter
),
LCL_INTERFACE_ENTRY
(
IStdMarshalInfo
),
LCL_INTERFACE_ENTRY
(
IExternalConnection
),
LCL_INTERFACE_ENTRY
(
IMallocSpy
),
LCL_INTERFACE_ENTRY
(
IMultiQI
),
STD_INTERFACE_ENTRY
(
IEnumUnknown
),
STD_INTERFACE_ENTRY
(
IEnumString
),
STD_INTERFACE_ENTRY
(
IEnumMoniker
),
STD_INTERFACE_ENTRY
(
IEnumFORMATETC
),
STD_INTERFACE_ENTRY
(
IEnumOLEVERB
),
STD_INTERFACE_ENTRY
(
IEnumSTATDATA
),
BAS_INTERFACE_ENTRY
(
IPersistStream
,
IPersist
),
BAS_INTERFACE_ENTRY
(
IPersistStorage
,
IPersist
),
BAS_INTERFACE_ENTRY
(
IPersistFile
,
IPersist
),
STD_INTERFACE_ENTRY
(
IPersist
),
STD_INTERFACE_ENTRY
(
IViewObject
),
STD_INTERFACE_ENTRY
(
IDataObject
),
STD_INTERFACE_ENTRY
(
IAdviseSink
),
LCL_INTERFACE_ENTRY
(
IDataAdviseHolder
),
LCL_INTERFACE_ENTRY
(
IOleAdviseHolder
),
STD_INTERFACE_ENTRY
(
IOleObject
),
BAS_INTERFACE_ENTRY
(
IOleInPlaceObject
,
IOleWindow
),
STD_INTERFACE_ENTRY
(
IOleWindow
),
BAS_INTERFACE_ENTRY
(
IOleInPlaceUIWindow
,
IOleWindow
),
STD_INTERFACE_ENTRY
(
IOleInPlaceFrame
),
BAS_INTERFACE_ENTRY
(
IOleInPlaceActiveObject
,
IOleWindow
),
STD_INTERFACE_ENTRY
(
IOleClientSite
),
BAS_INTERFACE_ENTRY
(
IOleInPlaceSite
,
IOleWindow
),
STD_INTERFACE_ENTRY
(
IParseDisplayName
),
BAS_INTERFACE_ENTRY
(
IOleContainer
,
IParseDisplayName
),
BAS_INTERFACE_ENTRY
(
IOleItemContainer
,
IOleContainer
),
STD_INTERFACE_ENTRY
(
IOleLink
),
STD_INTERFACE_ENTRY
(
IOleCache
),
LCL_INTERFACE_ENTRY
(
IDropSource
),
STD_INTERFACE_ENTRY
(
IDropTarget
),
BAS_INTERFACE_ENTRY
(
IAdviseSink2
,
IAdviseSink
),
STD_INTERFACE_ENTRY
(
IRunnableObject
),
BAS_INTERFACE_ENTRY
(
IViewObject2
,
IViewObject
),
BAS_INTERFACE_ENTRY
(
IOleCache2
,
IOleCache
),
STD_INTERFACE_ENTRY
(
IOleCacheControl
),
STD_INTERFACE_ENTRY
(
IRemUnknown
),
LCL_INTERFACE_ENTRY
(
IClientSecurity
),
LCL_INTERFACE_ENTRY
(
IServerSecurity
),
STD_INTERFACE_ENTRY
(
ISequentialStream
),
ACTX_INTERFACE_ENTRY
(
IEnumGUID
),
ACTX_INTERFACE_ENTRY
(
IEnumCATEGORYINFO
),
ACTX_INTERFACE_ENTRY
(
ICatRegister
),
...
...
@@ -588,7 +557,9 @@ HRESULT WINAPI DllRegisterServer(void)
TRACE
(
"
\n
"
);
hr
=
register_coclasses
(
coclass_list
);
hr
=
OLE32_DllRegisterServer
();
if
(
SUCCEEDED
(
hr
))
hr
=
register_coclasses
(
coclass_list
);
if
(
SUCCEEDED
(
hr
))
hr
=
register_interfaces
(
interface_list
);
return
hr
;
...
...
@@ -606,5 +577,7 @@ HRESULT WINAPI DllUnregisterServer(void)
hr
=
unregister_coclasses
(
coclass_list
);
if
(
SUCCEEDED
(
hr
))
hr
=
unregister_interfaces
(
interface_list
);
if
(
SUCCEEDED
(
hr
))
hr
=
OLE32_DllUnregisterServer
();
return
hr
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment