ReactOS 0.4.15-dev-7924-g5949c20
atl80.c
Go to the documentation of this file.
1/*
2 * Copyright 2012 Stefan Leichter
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#include <stdarg.h>
20#include <stdio.h>
21
22#define COBJMACROS
23
24#include "windef.h"
25#include "winbase.h"
26#include "winerror.h"
27#include "winuser.h"
28#include "wine/atlbase.h"
29
30#include "wine/debug.h"
31
33
34/***********************************************************************
35 * AtlRegisterTypeLib [atl80.18]
36 */
38{
39 const struct _ATL_CATMAP_ENTRY *catmap;
40 _ATL_OBJMAP_ENTRY **iter;
42
43 TRACE("(%p %x %s)\n", mod, bRegTypeLib, debugstr_guid(clsid));
44
45 for(iter = mod->m_ppAutoObjMapFirst; iter < mod->m_ppAutoObjMapLast; iter++) {
46 if(!*iter || (clsid && !IsEqualCLSID((*iter)->pclsid, clsid)))
47 continue;
48
49 TRACE("Registering clsid %s\n", debugstr_guid((*iter)->pclsid));
50 hres = (*iter)->pfnUpdateRegistry(TRUE);
51 if(FAILED(hres))
52 return hres;
53
54 catmap = (*iter)->pfnGetCategoryMap();
55 if(catmap) {
56 hres = AtlRegisterClassCategoriesHelper((*iter)->pclsid, catmap, TRUE);
57 if(FAILED(hres))
58 return hres;
59 }
60 }
61
62 if(bRegTypeLib) {
63 hres = AtlRegisterTypeLib(mod->m_hInstTypeLib, NULL);
64 if(FAILED(hres))
65 return hres;
66 }
67
68 return S_OK;
69}
HRESULT WINAPI AtlComModuleRegisterServer(_ATL_COM_MODULE *mod, BOOL bRegTypeLib, const CLSID *clsid)
Definition: atl80.c:37
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
HRESULT WINAPI AtlRegisterClassCategoriesHelper(REFCLSID clsid, const struct _ATL_CATMAP_ENTRY *catmap, BOOL reg)
Definition: atl.c:747
HRESULT WINAPI AtlRegisterTypeLib(HINSTANCE inst, const WCHAR *index)
Definition: atl.c:399
unsigned int BOOL
Definition: ntddk_ex.h:94
static int mod
Definition: i386-dis.c:1288
#define S_OK
Definition: intsafe.h:52
#define FAILED(hr)
Definition: intsafe.h:51
#define debugstr_guid
Definition: kernel32.h:35
HRESULT hres
Definition: protocol.c:465
REFCLSID clsid
Definition: msctf.c:82
#define IsEqualCLSID(rclsid1, rclsid2)
Definition: guiddef.h:96
#define TRACE(s)
Definition: solgame.cpp:4
Definition: atlbase.h:248
#define WINAPI
Definition: msvc.h:6