atl80: Added AtlComModuleRegisterServer implementation (based on AtlModuleRegisterServer).

This commit is contained in:
Jacek Caban 2013-01-04 11:33:50 +01:00 committed by Alexandre Julliard
parent 73df62c95b
commit cc18fc0f14
2 changed files with 37 additions and 1 deletions

View File

@ -25,6 +25,42 @@
WINE_DEFAULT_DEBUG_CHANNEL(atl);
/***********************************************************************
* AtlRegisterTypeLib [atl80.18]
*/
HRESULT WINAPI AtlComModuleRegisterServer(_ATL_COM_MODULE *mod, BOOL bRegTypeLib, const CLSID *clsid)
{
const struct _ATL_CATMAP_ENTRY *catmap;
_ATL_OBJMAP_ENTRY **iter;
HRESULT hres;
TRACE("(%p %x %s)\n", mod, bRegTypeLib, debugstr_guid(clsid));
for(iter = mod->m_ppAutoObjMapFirst; iter < mod->m_ppAutoObjMapLast; iter++) {
if(!clsid || IsEqualCLSID((*iter)->pclsid, clsid)) {
TRACE("Registering clsid %s\n", debugstr_guid((*iter)->pclsid));
hres = (*iter)->pfnUpdateRegistry(TRUE);
if(FAILED(hres))
return hres;
catmap = (*iter)->pfnGetCategoryMap();
if(catmap) {
hres = AtlRegisterClassCategoriesHelper((*iter)->pclsid, catmap, TRUE);
if(FAILED(hres))
return hres;
}
}
}
if(bRegTypeLib) {
hres = AtlRegisterTypeLib(mod->m_hInstTypeLib, NULL);
if(FAILED(hres))
return hres;
}
return S_OK;
}
/***********************************************************************
* AtlRegisterTypeLib [atl80.19]
*/

View File

@ -5,7 +5,7 @@
14 stdcall AtlUnmarshalPtr(ptr ptr ptr) atl100.AtlUnmarshalPtr
15 stdcall AtlComModuleGetClassObject(ptr ptr ptr ptr) atl100.AtlComModuleGetClassObject
17 stub AtlComModuleRegisterClassObjects
18 stub AtlComModuleRegisterServer(ptr long ptr)
18 stdcall AtlComModuleRegisterServer(ptr long ptr)
19 stdcall AtlRegisterTypeLib(ptr wstr)
20 stub AtlComModuleRevokeClassObjects
22 stub AtlComModuleUnregisterServer