[CRYPTUI] Sync with Wine Staging 3.3. CORE-14434
[reactos.git] / dll / win32 / cryptui / main.c
index 70eac91..a652239 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-#define WIN32_NO_STATUS
-#define _INC_WINDOWS
-#define COM_NO_WINDOWS_H
-
-#include <config.h>
+#include "config.h"
 
 #include <stdarg.h>
 
 #define COBJMACROS
 #define NONAMELESSUNION
 
-#include <windef.h>
-#include <winbase.h>
-//#include "winnls.h"
-#include <winuser.h>
-#include <softpub.h>
-#include <wingdi.h>
-#include <richedit.h>
-#include <ole2.h>
-#include <richole.h>
-#include <commdlg.h>
-#include <commctrl.h>
-#include <cryptuiapi.h>
+#include "windef.h"
+#include "winbase.h"
+#include "winnls.h"
+#include "winuser.h"
+#include "softpub.h"
+#include "wingdi.h"
+#include "richedit.h"
+#include "ole2.h"
+#include "richole.h"
+#include "commdlg.h"
+#include "commctrl.h"
+#include "cryptuiapi.h"
 #include "cryptuires.h"
-//#include "urlmon.h"
-#include <hlink.h>
-#include <winreg.h>
-#include <wine/debug.h>
-#include <wine/unicode.h>
+#include "urlmon.h"
+#include "hlink.h"
+#include "winreg.h"
+#include "wine/debug.h"
+#include "wine/unicode.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(cryptui);
 
@@ -62,10 +58,6 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
             hInstance = hinstDLL;
             DisableThreadLibraryCalls(hinstDLL);
             break;
-        case DLL_PROCESS_DETACH:
-            break;
-        default:
-            break;
     }
     return TRUE;
 }
@@ -299,7 +291,7 @@ static CERT_ENHKEY_USAGE *convert_usages_str_to_usage(LPSTR usageStr)
         {
             if (comma)
                 *comma = 0;
-            add_oid_to_usage(usage, ptr);
+            usage = add_oid_to_usage(usage, ptr);
         }
     }
     return usage;
@@ -327,7 +319,7 @@ static CERT_ENHKEY_USAGE *create_advanced_filter(void)
                 {
                     PCCRYPT_OID_INFO *ptr;
 
-                    for (ptr = usages; *ptr; ptr++)
+                    for (ptr = usages; advancedUsage && *ptr; ptr++)
                     {
                         DWORD i;
                         BOOL disabled = FALSE;
@@ -338,7 +330,7 @@ static CERT_ENHKEY_USAGE *create_advanced_filter(void)
                              (*ptr)->pszOID))
                                 disabled = TRUE;
                         if (!disabled)
-                            add_oid_to_usage(advancedUsage,
+                            advancedUsage = add_oid_to_usage(advancedUsage,
                              (LPSTR)(*ptr)->pszOID);
                     }
                     /* The individual strings are pointers to disabledUsagesStr,
@@ -1800,17 +1792,16 @@ static void add_cert_string_to_control(HWND hwnd, PCCERT_CONTEXT pCertContext,
 static void add_icon_to_control(HWND hwnd, int id)
 {
     HRESULT hr;
-    LPRICHEDITOLE richEditOle = NULL;
-    LPOLEOBJECT object = NULL;
+    IRichEditOle *richEditOle = NULL;
+    IOleObject *object = NULL;
     CLSID clsid;
     LPOLECACHE oleCache = NULL;
     FORMATETC formatEtc;
     DWORD conn;
-    LPDATAOBJECT dataObject = NULL;
+    IDataObject *dataObject = NULL;
     HBITMAP bitmap = NULL;
-    RECT rect;
     STGMEDIUM stgm;
-    LPOLECLIENTSITE clientSite = NULL;
+    IOleClientSite *clientSite = NULL;
     REOBJECT reObject;
 
     TRACE("(%p, %d)\n", hwnd, id);
@@ -1847,9 +1838,6 @@ static void add_icon_to_control(HWND hwnd, int id)
      LR_DEFAULTSIZE | LR_LOADTRANSPARENT);
     if (!bitmap)
         goto end;
-    rect.left = rect.top = 0;
-    rect.right = GetSystemMetrics(SM_CXICON);
-    rect.bottom = GetSystemMetrics(SM_CYICON);
     stgm.tymed = TYMED_GDI;
     stgm.u.hBitmap = bitmap;
     stgm.pUnkForRelease = NULL;
@@ -2844,7 +2832,7 @@ static const struct v1_field v1_fields[] = {
 
 static void add_v1_fields(HWND hwnd, struct detail_data *data)
 {
-    int i;
+    unsigned int i;
     PCCERT_CONTEXT cert = data->pCertViewInfo->pCertContext;
 
     /* The last item in v1_fields is the public key, which is not in the loop
@@ -3776,7 +3764,7 @@ static void show_edit_cert_properties_dialog(HWND parent,
 
 static void free_detail_fields(struct detail_data *data)
 {
-    DWORD i;
+    int i;
 
     for (i = 0; i < data->cFields; i++)
         HeapFree(GetProcessHeap(), 0, data->fields[i].detailed_value);
@@ -7061,3 +7049,18 @@ PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateA(PCCRYPTUI_SELECTCERTIFICATE_S
     FIXME("%p: stub\n", pcsc);
     return NULL;
 }
+
+PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateFromStore(HCERTSTORE hCertStore, HWND hwnd, LPCWSTR pwszTitle,
+                                                           LPCWSTR pwszDisplayString, DWORD dwDontUseColumn,
+                                                           DWORD dwFlags, void *pvReserved)
+{
+    FIXME("%p %p %s %s %d %d %p: stub\n", hCertStore, hwnd, debugstr_w(pwszTitle), debugstr_w(pwszDisplayString), dwDontUseColumn, dwFlags, pvReserved);
+    return NULL;
+}
+
+BOOL WINAPI CryptUIWizDigitalSign(DWORD flags, HWND parent, LPCWSTR title, PCCRYPTUI_WIZ_DIGITAL_SIGN_INFO info,
+                                  PCCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT *context)
+{
+    FIXME("%d %p %s %p %p: stub\n", flags, parent, debugstr_w(title), info, context);
+    return FALSE;
+}