strmbase: Define STRMBASE_DllMain.

This commit is contained in:
Aric Stewart 2010-10-19 13:24:03 -05:00 committed by Alexandre Julliard
parent 6a00d78b39
commit 58468ef152
5 changed files with 41 additions and 46 deletions

View File

@ -159,25 +159,3 @@ HRESULT SetupRegisterServers(const FactoryTemplate * pList, int num,
hr = SetupRegisterAllClasses(pList, num, szFileName, FALSE); hr = SetupRegisterAllClasses(pList, num, szFileName, FALSE);
return hr; return hr;
} }
/****************************************************************************
* SetupInitializeServers
*
* This function is table driven using the static members of the
* CFactoryTemplate class defined in the Dll.
*
* It calls the initialize function for any class in CFactoryTemplate with
* one defined.
*
****************************************************************************/
void SetupInitializeServers(const FactoryTemplate * pList, int num,
BOOL bLoading)
{
int i;
for (i = 0; i < num; i++, pList++)
{
if (pList->m_lpfnInit)
pList->m_lpfnInit(bLoading, pList->m_ClsID);
}
}

View File

@ -35,17 +35,4 @@
****************************************************************************/ ****************************************************************************/
extern HRESULT SetupRegisterServers(const FactoryTemplate * pList, int num, BOOL bRegister); extern HRESULT SetupRegisterServers(const FactoryTemplate * pList, int num, BOOL bRegister);
/****************************************************************************
* SetupInitializeServers
*
* This function is table driven using the static members of the
* CFactoryTemplate class defined in the Dll.
*
* It calls the initialize function for any class in CFactoryTemplate with
* one defined.
*
****************************************************************************/
extern void SetupInitializeServers(const FactoryTemplate * pList, int num,
BOOL bLoading);
#endif /* _QCAP_DLLSETUP_H_DEFINED */ #endif /* _QCAP_DLLSETUP_H_DEFINED */

View File

@ -154,17 +154,7 @@ int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);
*/ */
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv) BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
{ {
switch (fdwReason) return STRMBASE_DllMain(hInstDLL,fdwReason,lpv);
{
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hInstDLL);
SetupInitializeServers(g_Templates, g_cTemplates, TRUE);
break;
case DLL_PROCESS_DETACH:
SetupInitializeServers(g_Templates, g_cTemplates, FALSE);
break;
}
return TRUE;
} }
/*********************************************************************** /***********************************************************************

View File

@ -91,3 +91,40 @@ HRESULT WINAPI AMovieDllRegisterServer2(BOOL bRegister)
return hr; return hr;
} }
/****************************************************************************
* SetupInitializeServers
*
* This function is table driven using the static members of the
* CFactoryTemplate class defined in the Dll.
*
* It calls the initialize function for any class in CFactoryTemplate with
* one defined.
*
****************************************************************************/
static void SetupInitializeServers(const FactoryTemplate * pList, int num,
BOOL bLoading)
{
int i;
for (i = 0; i < num; i++, pList++)
{
if (pList->m_lpfnInit)
pList->m_lpfnInit(bLoading, pList->m_ClsID);
}
}
BOOL WINAPI STRMBASE_DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hInstDLL);
SetupInitializeServers(g_Templates, g_cTemplates, TRUE);
break;
case DLL_PROCESS_DETACH:
SetupInitializeServers(g_Templates, g_cTemplates, FALSE);
break;
}
return TRUE;
}

View File

@ -312,3 +312,6 @@ typedef struct tagFactoryTemplate {
HRESULT WINAPI AMovieDllRegisterServer2(BOOL bRegister); HRESULT WINAPI AMovieDllRegisterServer2(BOOL bRegister);
HRESULT WINAPI AMovieSetupRegisterFilter2( const AMOVIESETUP_FILTER const * pFilter, IFilterMapper2 *pIFM2, BOOL bRegister); HRESULT WINAPI AMovieSetupRegisterFilter2( const AMOVIESETUP_FILTER const * pFilter, IFilterMapper2 *pIFM2, BOOL bRegister);
/* Dll Functions */
BOOL WINAPI STRMBASE_DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv);