Robert Shearman : include: Add DLL registration macros to rpcproxy. h for dlldata.c files.
Module: wine Branch: refs/heads/master Commit: 891c83d976299f010794138e45c17fa6b15c578a URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=891c83d976299f010794138e... Author: Robert Shearman <rob(a)codeweavers.com> Date: Wed Aug 9 18:15:56 2006 +0100 include: Add DLL registration macros to rpcproxy.h for dlldata.c files. --- include/rpcproxy.h | 31 ++++++++++++++++++++++++++++++- 1 files changed, 30 insertions(+), 1 deletions(-) diff --git a/include/rpcproxy.h b/include/rpcproxy.h index 824462a..a4adc02 100644 --- a/include/rpcproxy.h +++ b/include/rpcproxy.h @@ -303,7 +303,36 @@ #define DLLCANUNLOADNOW(factory) \ return NdrDllCanUnloadNow((factory)); \ } -#define DLLREGISTRY_ROUTINES(pfl, factory_clsid) +#define REGISTER_PROXY_DLL_ROUTINES(pfl, factory_clsid) \ + HINSTANCE hProxyDll = NULL; \ + \ + BOOL WINAPI DLLMAIN_ENTRY(HINSTANCE hinstDLL, DWORD fdwReason, \ + LPVOID lpvReserved) \ + { \ + if (fdwReason == DLL_PROCESS_ATTACH) \ + { \ + DisableThreadLibraryCalls(hinstDLL); \ + hProxyDll = hinstDLL; \ + } \ + return TRUE; \ + } \ + \ + HRESULT WINAPI DLLREGISTERSERVER_ENTRY(void) \ + { \ + return NdrDllRegisterProxy(hProxyDll, (pfl), (factory_clsid)); \ + } \ + \ + HRESULT WINAPI DLLUNREGISTERSERVER_ENTRY(void) \ + { \ + return NdrDllUnregisterProxy(hProxyDll, (pfl), (factory_clsid)); \ + } + +#ifdef REGISTER_PROXY_DLL +# define DLLREGISTRY_ROUTINES(pfl, factory_clsid) \ + REGISTER_PROXY_DLL_ROUTINES(pfl, factory_clsid) +#else +# define DLLREGISTRY_ROUTINES(pfl, factory_clsid) +#endif #define DLLDATA_ROUTINES(pfl, factory_clsid) \ CLSID_PSFACTORYBUFFER \
participants (1)
-
Alexandre Julliard