msi: Write-strings warnings fix.
[wine] / dlls / wintrust / wintrust_main.c
1 /*
2  * Copyright 2001 Rein Klazes
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 "config.h"
20
21 #include <stdarg.h>
22
23 #include "windef.h"
24 #include "winbase.h"
25 #include "winerror.h"
26 #include "guiddef.h"
27 #include "wintrust.h"
28 #include "softpub.h"
29 #include "mscat.h"
30 #include "objbase.h"
31
32 #include "wine/debug.h"
33
34 WINE_DEFAULT_DEBUG_CHANNEL(wintrust);
35
36
37 /***********************************************************************
38  *              DllMain  (WINTRUST.@)
39  */
40 BOOL WINAPI DllMain( HINSTANCE inst, DWORD reason, LPVOID reserved )
41 {
42     switch(reason)
43     {
44     case DLL_WINE_PREATTACH:
45         return FALSE;  /* prefer native version */
46     case DLL_PROCESS_ATTACH:
47         DisableThreadLibraryCalls( inst );
48         break;
49     }
50     return TRUE;
51 }
52
53 /***********************************************************************
54  *              CryptCATAdminAcquireContext (WINTRUST.@)
55  */
56 BOOL WINAPI CryptCATAdminAcquireContext(HCATADMIN* catAdmin,
57                                         const GUID *sysSystem, DWORD dwFlags )
58 {
59     FIXME("%p %s %lx\n", catAdmin, debugstr_guid(sysSystem), dwFlags);
60     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
61     return FALSE;
62 }
63
64 /***********************************************************************
65  *             CryptCATAdminCalcHashFromFileHandle (WINTRUST.@)
66  */
67 BOOL WINAPI CryptCATAdminCalcHashFromFileHandle(HANDLE hFile, DWORD* pcbHash,
68                                                 BYTE* pbHash, DWORD dwFlags )
69 {
70     FIXME("%p %p %p %lx\n", hFile, pcbHash, pbHash, dwFlags);
71     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
72     return FALSE;
73 }
74
75 /***********************************************************************
76  *              CryptCATAdminReleaseContext (WINTRUST.@)
77  */
78 BOOL WINAPI CryptCATAdminReleaseContext(HCATADMIN hCatAdmin, DWORD dwFlags )
79 {
80     FIXME("%p %lx\n", hCatAdmin, dwFlags);
81     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
82     return FALSE;
83 }
84
85 /***********************************************************************
86  *              TrustIsCertificateSelfSigned (WINTRUST.@)
87  */
88 BOOL WINAPI TrustIsCertificateSelfSigned( PCCERT_CONTEXT cert )
89 {
90     BOOL ret;
91
92     TRACE("%p\n", cert);
93     ret = CertCompareCertificateName(cert->dwCertEncodingType,
94      &cert->pCertInfo->Subject, &cert->pCertInfo->Issuer);
95     return ret;
96 }
97
98 /***********************************************************************
99  *              WinVerifyTrust (WINTRUST.@)
100  */
101 LONG WINAPI WinVerifyTrust( HWND hwnd, GUID *ActionID,  WINTRUST_DATA* ActionData )
102 {
103     static const GUID gen_verify_v2 = WINTRUST_ACTION_GENERIC_VERIFY_V2;
104
105     FIXME("%p %s %p\n", hwnd, debugstr_guid(ActionID), ActionData);
106
107     /* Trust providers can be found at:
108      * HKLM\SOFTWARE\Microsoft\Cryptography\Providers\Trust\CertCheck\
109      *
110      * Process Explorer expects a correct implementation, so we 
111      * return TRUST_E_PROVIDER_UNKNOWN.
112      *
113      * Girotel needs ERROR_SUCCESS.
114      *
115      * For now return TRUST_E_PROVIDER_UNKNOWN only when 
116      * ActionID = WINTRUST_ACTION_GENERIC_VERIFY_V2.
117      *
118      */
119
120     if (IsEqualCLSID(ActionID, &gen_verify_v2))
121         return TRUST_E_PROVIDER_UNKNOWN;
122
123     return ERROR_SUCCESS;
124 }
125
126 /***********************************************************************
127  *              WinVerifyTrustEx (WINTRUST.@)
128  */
129 HRESULT WINAPI WinVerifyTrustEx( HWND hwnd, GUID *ActionID,
130  WINTRUST_DATA* ActionData )
131 {
132     FIXME("%p %s %p\n", hwnd, debugstr_guid(ActionID), ActionData);
133     return S_OK;
134 }
135
136 /***********************************************************************
137  *              WTHelperGetProvSignerFromChain (WINTRUST.@)
138  */
139 CRYPT_PROVIDER_SGNR * WINAPI WTHelperGetProvSignerFromChain(
140  CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner, BOOL fCounterSigner,
141  DWORD idxCounterSigner)
142 {
143     FIXME("%p %ld %d %ld\n", pProvData, idxSigner, fCounterSigner,
144      idxCounterSigner);
145     return NULL;
146 }
147
148 /***********************************************************************
149  *              WTHelperProvDataFromStateData (WINTRUST.@)
150  */
151 CRYPT_PROVIDER_DATA * WINAPI WTHelperProvDataFromStateData(HANDLE hStateData)
152 {
153     FIXME("%p\n", hStateData);
154     return NULL;
155 }
156
157 /***********************************************************************
158  *              WintrustAddActionID (WINTRUST.@)
159  */
160 BOOL WINAPI WintrustAddActionID( GUID* pgActionID, DWORD fdwFlags,
161                                  CRYPT_REGISTER_ACTIONID* psProvInfo)
162 {
163     FIXME("%p %lx %p\n", pgActionID, fdwFlags, psProvInfo);
164     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
165     return FALSE;
166 }
167
168 /***********************************************************************
169  *              WintrustGetRegPolicyFlags (WINTRUST.@)
170  */
171 void WINAPI WintrustGetRegPolicyFlags( DWORD* pdwPolicyFlags )
172 {
173     FIXME("%p\n", pdwPolicyFlags);
174     *pdwPolicyFlags = 0;
175 }
176
177 /***********************************************************************
178  *              WintrustSetRegPolicyFlags (WINTRUST.@)
179  */
180 BOOL WINAPI WintrustSetRegPolicyFlags( DWORD dwPolicyFlags)
181 {
182     FIXME("stub: %lx\n", dwPolicyFlags);
183     return TRUE;
184 }
185
186 /***********************************************************************
187   *             DllRegisterServer (WINTRUST.@)
188   */
189 HRESULT WINAPI DllRegisterServer(void)
190 {
191      FIXME("stub\n");
192      return S_OK;
193 }
194
195 /***********************************************************************
196   *             DllUnregisterServer (WINTRUST.@)
197   */
198 HRESULT WINAPI DllUnregisterServer(void)
199 {
200      FIXME("stub\n");
201      return S_OK;
202 }