include: Assorted spelling fixes.
[wine] / dlls / atl / registrar.c
1 /*
2  * Copyright 2005 Jacek Caban
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 #define COBJMACROS
20
21 #include "oaidl.h"
22 #include "rpcproxy.h"
23 #include "atlbase.h"
24
25 #include "wine/debug.h"
26 #include "wine/unicode.h"
27
28 WINE_DEFAULT_DEBUG_CHANNEL(atl);
29
30 /**************************************************************
31  * ClassFactory implementation
32  */
33
34 static HRESULT WINAPI RegistrarCF_QueryInterface(IClassFactory *iface, REFIID riid, void **ppvObject)
35 {
36     TRACE("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppvObject);
37
38     if(IsEqualGUID(&IID_IUnknown, riid) || IsEqualGUID(&IID_IClassFactory, riid)) {
39         *ppvObject = iface;
40         IClassFactory_AddRef( iface );
41         return S_OK;
42     }
43
44     return E_NOINTERFACE;
45 }
46
47 static ULONG WINAPI RegistrarCF_AddRef(IClassFactory *iface)
48 {
49     return 2;
50 }
51
52 static ULONG WINAPI RegistrarCF_Release(IClassFactory *iface)
53 {
54     return 1;
55 }
56
57 static HRESULT WINAPI RegistrarCF_CreateInstance(IClassFactory *iface, LPUNKNOWN pUnkOuter,
58                                                 REFIID riid, void **ppv)
59 {
60     IRegistrar *registrar;
61     HRESULT hres;
62
63     TRACE("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppv);
64
65     if(pUnkOuter) {
66         *ppv = NULL;
67         return CLASS_E_NOAGGREGATION;
68     }
69
70     hres = AtlCreateRegistrar(&registrar);
71     if(FAILED(hres))
72         return hres;
73
74     hres = IRegistrar_QueryInterface(registrar, riid, ppv);
75     IRegistrar_Release(registrar);
76     return hres;
77 }
78
79 static HRESULT WINAPI RegistrarCF_LockServer(IClassFactory *iface, BOOL lock)
80 {
81     TRACE("(%p)->(%x)\n", iface, lock);
82     return S_OK;
83 }
84
85 static const IClassFactoryVtbl IRegistrarCFVtbl = {
86     RegistrarCF_QueryInterface,
87     RegistrarCF_AddRef,
88     RegistrarCF_Release,
89     RegistrarCF_CreateInstance,
90     RegistrarCF_LockServer
91 };
92
93 static IClassFactory RegistrarCF = { &IRegistrarCFVtbl };
94
95 /**************************************************************
96  * DllGetClassObject (ATL.2)
97  */
98 HRESULT WINAPI DllGetClassObject(REFCLSID clsid, REFIID riid, LPVOID *ppvObject)
99 {
100     TRACE("(%s %s %p)\n", debugstr_guid(clsid), debugstr_guid(riid), ppvObject);
101
102     if(IsEqualGUID(&CLSID_Registrar, clsid))
103         return IClassFactory_QueryInterface( &RegistrarCF, riid, ppvObject );
104
105     FIXME("Not supported class %s\n", debugstr_guid(clsid));
106     return CLASS_E_CLASSNOTAVAILABLE;
107 }
108
109 extern HINSTANCE hInst;
110
111 /***********************************************************************
112  *           AtlModuleUpdateRegistryFromResourceD         [ATL.@]
113  *
114  */
115 HRESULT WINAPI AtlModuleUpdateRegistryFromResourceD(_ATL_MODULEW* pM, LPCOLESTR lpszRes,
116         BOOL bRegister, struct _ATL_REGMAP_ENTRY* pMapEntries, IRegistrar* pReg)
117 {
118     TRACE("(%p %s %d %p %p)\n", pM, debugstr_w(lpszRes), bRegister, pMapEntries, pReg);
119
120     return AtlUpdateRegistryFromResourceD(pM->m_hInst, lpszRes, bRegister, pMapEntries, pReg);
121 }
122
123 /***********************************************************************
124  *              DllRegisterServer (ATL.@)
125  */
126 HRESULT WINAPI DllRegisterServer(void)
127 {
128     return __wine_register_resources( hInst );
129 }
130
131 /***********************************************************************
132  *              DllUnRegisterServer (ATL.@)
133  */
134 HRESULT WINAPI DllUnregisterServer(void)
135 {
136     return __wine_unregister_resources( hInst );
137 }
138
139 /***********************************************************************
140  *              DllCanUnloadNow (ATL.@)
141  */
142 HRESULT WINAPI DllCanUnloadNow(void)
143 {
144     return S_FALSE;
145 }