Wine-0_9_3 vendor drop
Modified: vendor/wine/dlls/commdlg/current/cdlg_Bg.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Ca.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Cn.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Cs.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Da.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_De.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_En.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Es.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Fi.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Fr.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Hu.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_It.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Ja.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Nl.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_No.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Pl.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Pt.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Ru.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Si.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Sk.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Sv.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Uk.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Wa.rc
Modified: vendor/wine/dlls/commdlg/current/cdlg_Zh.rc
Modified: vendor/wine/dlls/commdlg/current/printdlg.c
Modified: vendor/wine/dlls/crypt32/current/Makefile.in
Modified: vendor/wine/dlls/crypt32/current/cert.c
Modified: vendor/wine/dlls/crypt32/current/crypt32.spec
Modified: vendor/wine/dlls/crypt32/current/crypt32_private.h
Modified: vendor/wine/dlls/crypt32/current/encode.c
Modified: vendor/wine/dlls/crypt32/current/main.c
Added: vendor/wine/dlls/crypt32/current/oid.c
Modified: vendor/wine/dlls/dinput/current/device.c
Modified: vendor/wine/dlls/dplayx/current/dplayx_messages.c
Added: vendor/wine/dlls/imm32/
Added: vendor/wine/dlls/imm32/current/
Added: vendor/wine/dlls/imm32/current/Makefile.in
Added: vendor/wine/dlls/imm32/current/imm.c
Added: vendor/wine/dlls/imm32/current/imm.spec
Added: vendor/wine/dlls/imm32/current/imm32.spec
Modified: vendor/wine/dlls/midimap/current/midimap.c
Modified: vendor/wine/dlls/msi/current/dialog.c
Modified: vendor/wine/dlls/msi/current/helpers.c
Modified: vendor/wine/dlls/msi/current/msi.c
Modified: vendor/wine/dlls/msi/current/msi.spec
Modified: vendor/wine/dlls/msi/current/registry.c
Modified: vendor/wine/dlls/netapi32/current/Makefile.in
Modified: vendor/wine/dlls/netapi32/current/browsr.c
Added: vendor/wine/dlls/netapi32/current/ds.c
Modified: vendor/wine/dlls/netapi32/current/netapi32.c
Modified: vendor/wine/dlls/netapi32/current/netapi32.spec
Modified: vendor/wine/dlls/netapi32/current/wksta.c
Modified: vendor/wine/dlls/ole32/current/Makefile.in
Modified: vendor/wine/dlls/ole32/current/compobj_private.h
Modified: vendor/wine/dlls/ole32/current/defaulthandler.c
Modified: vendor/wine/dlls/ole32/current/ole32.spec
Modified: vendor/wine/dlls/ole32/current/ole32res.rc
Modified: vendor/wine/dlls/ole32/current/oleobj.c
Modified: vendor/wine/dlls/ole32/current/rpc.c
Added: vendor/wine/dlls/ole32/current/usrmarshal.c
Added: vendor/wine/dlls/oleacc/
Added: vendor/wine/dlls/oleacc/current/
Added: vendor/wine/dlls/oleacc/current/Makefile.in
Added: vendor/wine/dlls/oleacc/current/main.c
Added: vendor/wine/dlls/oleacc/current/oleacc.spec
Modified: vendor/wine/dlls/oleaut32/current/tmarshal.c
Modified: vendor/wine/dlls/oleaut32/current/typelib.c
Modified: vendor/wine/dlls/oleaut32/current/typelib.h
Modified: vendor/wine/dlls/oleaut32/current/vartype.c
Modified: vendor/wine/dlls/riched20/current/editor.c
Modified: vendor/wine/dlls/rpcrt4/current/cpsf.c
Modified: vendor/wine/dlls/rpcrt4/current/cpsf.h
Modified: vendor/wine/dlls/rpcrt4/current/cstub.c
Modified: vendor/wine/dlls/rpcrt4/current/ndr_marshall.c
Modified: vendor/wine/dlls/rpcrt4/current/ndr_midl.c
Modified: vendor/wine/dlls/rpcrt4/current/ndr_misc.h
Modified: vendor/wine/dlls/rpcrt4/current/ndr_ole.c
Modified: vendor/wine/dlls/rpcrt4/current/rpc_server.c
Modified: vendor/wine/dlls/rpcrt4/current/rpcss_np_client.c
Modified: vendor/wine/dlls/shdocvw/current/Makefile.in
Modified: vendor/wine/dlls/shdocvw/current/client.c
Modified: vendor/wine/dlls/shdocvw/current/dochost.c
Modified: vendor/wine/dlls/shdocvw/current/events.c
Added: vendor/wine/dlls/shdocvw/current/frame.c
Modified: vendor/wine/dlls/shdocvw/current/oleobject.c
Modified: vendor/wine/dlls/shdocvw/current/shdocvw.h
Modified: vendor/wine/dlls/shdocvw/current/webbrowser.c
Modified: vendor/wine/dlls/shell32/current/iconcache.c
Modified: vendor/wine/dlls/shell32/current/shell32_main.h
Modified: vendor/wine/dlls/shell32/current/shellpath.c
Modified: vendor/wine/dlls/shell32/current/shfldr_desktop.c
Modified: vendor/wine/dlls/shell32/current/shfldr_unixfs.c
Modified: vendor/wine/dlls/shell32/current/shlexec.c
Modified: vendor/wine/dlls/shell32/current/shlfolder.c
Modified: vendor/wine/dlls/shell32/current/shlview.c
Modified: vendor/wine/tools/winebuild/current/relay.c
Modified: vendor/wine/tools/winebuild/current/spec16.c
Modified: vendor/wine/tools/winebuild/current/utils.c

Modified: vendor/wine/dlls/commdlg/current/cdlg_Bg.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Bg.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Bg.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -143,7 +143,7 @@
     GROUPBOX        "¤­ÞýÕ­",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "&?þß¾ÛÓ:",stc7 ,98,114,40,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 
@@ -406,9 +406,9 @@
     PD32_OUT_OF_MEMORY                    "?Õõ¯±?ÞÒ ÝÓ ´ÓýÕ?."
     PD32_GENERIC_ERROR                    "¤¯ ÔÞ ±Õ Ò­Õ°ÛÓ."
     PD32_DRIVER_UNKNOWN                   "?Õ´¯þÝÓ? õ­ÓÚÔÕ­ þÓ ´­ÞÝ?Õ­Ó."
-    PD32_NO_DEVICES                       "Before you can perform printer-related tasks \
-such as page setup or printing a document, you need to install a printer. \
-Please install one and retry."
+    PD32_NO_DEVICES                       "¤­ÕõÞ õÓ ý¯µÕ?Õ õÓ ÞþÔ·­°ÔÓ?Õ ¯´Ó­Õ÷ÞÞ, \
+±Ô·­þÓÝÞ ± ´Õ¸Ó? ÛÓ?¯ ÝÓ±?­¯ÚÛÓ ÝÓ ±?­ÓÝÞ÷Ó?Ó ÞÙÞ ­Óþ´Õ¸Ó?ÔÓÝÕ ÝÓ õ¯Û¾ýÕÝ?, \
+±Óý¯ ÓÛ¯ ÞýÓ?Õ Þݱ?ÓÙÞ­ÓÝ ´­ÞÝ?Õ­. ?ݱ?ÓÙÞ­ÓÚ?Õ ´­ÞÝ?Õ­ Þ ¯´Þ?ÓÚ?Õ ¯?ݯԯ."
 
     PD32_DEFAULT_PRINTER                  "¤­ÞÝ?Õ­ ´¯ ´¯õ­ÓþßÞ­ÓÝÕ; "
     PD32_NR_OF_DOCUMENTS_IN_QUEUE         "?ýÓ %d õ¯Û¾ýÕÝ?Ó Ô ¯´Ó°ÛÓ?Ó"

Modified: vendor/wine/dlls/commdlg/current/cdlg_Ca.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Ca.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Ca.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -142,7 +142,7 @@
     GROUPBOX        "Exemple",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Cn.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Cn.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Cn.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -142,7 +142,7 @@
     GROUPBOX        "?¥?²",grp2,98,72,120,36,WS_GROUP
     CTEXT           "Íð??ÎÍ?ÕAaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Cs.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Cs.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Cs.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -143,7 +143,7 @@
  GROUPBOX        "Ukßzka",grp2,98,72,120,36,WS_GROUP
  CTEXT           "P°Ýli? ¥lu?ouÞk² k¨? ·pýl ´ßbelskÚ ¾dy",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
  LTEXT           "Skr&ipt:",stc7 ,98,114,40,9
- COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+ COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
                  CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Da.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Da.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Da.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -142,7 +142,7 @@
     GROUPBOX        "Eksempel",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_De.rc
--- vendor/wine/dlls/commdlg/current/cdlg_De.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_De.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -173,7 +173,7 @@
     GROUPBOX        "Muster",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_En.rc
--- vendor/wine/dlls/commdlg/current/cdlg_En.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_En.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -142,7 +142,7 @@
     GROUPBOX        "Sample",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt:",stc7 ,98,114,40,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 
@@ -507,7 +507,7 @@
     GROUPBOX        "Sample",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt:",stc7 ,98,114,40,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Es.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Es.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Es.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -143,7 +143,7 @@
     GROUPBOX        "Ejemplo",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZzб",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Codificaci¾n:",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Fi.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Fi.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Fi.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -143,7 +143,7 @@
     GROUPBOX        "Nõyte",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Fr.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Fr.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Fr.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -146,7 +146,7 @@
     GROUPBOX        "Exemple",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Hu.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Hu.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Hu.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -141,7 +141,7 @@
     GROUPBOX        "Minta",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz?ßi§?Ú",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_It.rc
--- vendor/wine/dlls/commdlg/current/cdlg_It.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_It.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -143,7 +143,7 @@
     GROUPBOX        "Esempio",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Ja.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Ja.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Ja.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -142,7 +142,7 @@
     GROUPBOX        "âTâôâvâï",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Nl.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Nl.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Nl.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -142,7 +142,7 @@
     GROUPBOX        "Voorbeeld",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Schr&ift:",stc7 ,98,114,40,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_No.rc
--- vendor/wine/dlls/commdlg/current/cdlg_No.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_No.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -142,7 +142,7 @@
     GROUPBOX        "ForhÕndsvisning",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Skr&ipt:",stc7 ,98,114,40,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 
@@ -401,9 +401,9 @@
     PD32_OUT_OF_MEMORY                    "Ikke mer minne."
     PD32_GENERIC_ERROR                    "En feil har oppstÕtt."
     PD32_DRIVER_UNKNOWN                   "Ukjent skriverdriver."
-    PD32_NO_DEVICES                       "Before you can perform printer-related tasks \
-such as page setup or printing a document, you need to install a printer. \
-Please install one and retry."
+    PD32_NO_DEVICES                       "Du mÕ installere en skriver f°r du \
+    kan gj°re skriver-relaterte oppgaver som Õ endre \ sideoppsettet og skrive ut et dokument. \
+    Installer en og pr°v pÕ nytt."
 
     PD32_DEFAULT_PRINTER                  "Standardskriver; "
     PD32_NR_OF_DOCUMENTS_IN_QUEUE         "Det er %d dokumenter i k°en"

Modified: vendor/wine/dlls/commdlg/current/cdlg_Pl.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Pl.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Pl.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -144,7 +144,7 @@
     GROUPBOX        "Przyk?ad",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Skr&ypt:",stc7 ,98,114,40,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Pt.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Pt.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Pt.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -143,7 +143,7 @@
     GROUPBOX        "Exemplo",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Ru.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Ru.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Ru.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -142,7 +142,7 @@
     GROUPBOX        "?ß­ÓþÕ÷",grp2,98,72,120,36,WS_GROUP
     CTEXT           "?Ó?ßAaBb",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Si.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Si.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Si.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -142,7 +142,7 @@
     GROUPBOX        "Vzorec",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Sk.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Sk.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Sk.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -144,7 +144,7 @@
     GROUPBOX        "Vzorka",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Sv.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Sv.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Sv.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -140,7 +140,7 @@
     GROUPBOX        "Test",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Uk.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Uk.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Uk.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -142,7 +142,7 @@
     GROUPBOX        "&íÓþ¯Û",grp2,98,72,120,36,WS_GROUP
     CTEXT           "?Ó?ßAaBb",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "ÐÛ­Þ´?:",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Wa.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Wa.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Wa.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -147,7 +147,7 @@
     GROUPBOX        "Egzimpe",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz?ÕÃþ?¹",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/cdlg_Zh.rc
--- vendor/wine/dlls/commdlg/current/cdlg_Zh.rc	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/cdlg_Zh.rc	2005-12-12 20:26:19 UTC (rev 20113)
@@ -93,7 +93,7 @@
     GROUPBOX        "?á?²",grp2,98,72,120,36,WS_GROUP
     CTEXT           "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE
     LTEXT           "Scr&ipt (translate):",stc7 ,98,114,80,9
-    COMBOBOX        cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS |
+    COMBOBOX        cmb5,98,124,120,90,CBS_DROPDOWNLIST | CBS_HASSTRINGS |
 		    CBS_AUTOHSCROLL |   WS_VSCROLL | WS_TABSTOP
 }
 

Modified: vendor/wine/dlls/commdlg/current/printdlg.c
--- vendor/wine/dlls/commdlg/current/printdlg.c	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/commdlg/current/printdlg.c	2005-12-12 20:26:19 UTC (rev 20113)
@@ -2096,14 +2096,6 @@
 		lppd->hDevMode = GlobalAlloc(GMEM_MOVEABLE,
 					lpdm->dmSize + lpdm->dmDriverExtra);
 	    } else {
-	        WORD locks;
-		if((locks = (GlobalFlags(lppd->hDevMode) & GMEM_LOCKCOUNT))) {
-		    WARN("hDevMode has %d locks on it. Unlocking it now\n", locks);
-		    while(locks--) {
-		        GlobalUnlock(lppd->hDevMode);
-			TRACE("Now got %d locks\n", locks);
-		    }
-		}
 		lppd->hDevMode = GlobalReAlloc(lppd->hDevMode,
 					       lpdm->dmSize + lpdm->dmDriverExtra,
 					       GMEM_MOVEABLE);
@@ -2111,14 +2103,6 @@
 	    lpdmReturn = GlobalLock(lppd->hDevMode);
 	    memcpy(lpdmReturn, lpdm, lpdm->dmSize + lpdm->dmDriverExtra);
 
-	    if (lppd->hDevNames != 0) {
-	        WORD locks;
-		if((locks = (GlobalFlags(lppd->hDevNames) & GMEM_LOCKCOUNT))) {
-		    WARN("hDevNames has %d locks on it. Unlocking it now\n", locks);
-		    while(locks--)
-		        GlobalUnlock(lppd->hDevNames);
-		}
-	    }
 	    PRINTDLG_CreateDevNames(&(lppd->hDevNames),
 		    di->pDriverPath,
 		    pi->pPrinterName,

Modified: vendor/wine/dlls/crypt32/current/Makefile.in
--- vendor/wine/dlls/crypt32/current/Makefile.in	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/crypt32/current/Makefile.in	2005-12-12 20:26:19 UTC (rev 20113)
@@ -10,6 +10,7 @@
 C_SRCS = \
 	cert.c \
 	encode.c \
+	oid.c \
 	protectdata.c \
 	main.c
 

Modified: vendor/wine/dlls/crypt32/current/cert.c
--- vendor/wine/dlls/crypt32/current/cert.c	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/crypt32/current/cert.c	2005-12-12 20:26:19 UTC (rev 20113)
@@ -3285,15 +3285,12 @@
     return ret;
 }
 
-HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet(LPCSTR pszFuncName, DWORD dwFlags)
+BOOL WINAPI CryptVerifyMessageSignature(/*PCRYPT_VERIFY_MESSAGE_PARA*/ void* pVerifyPara,
+          DWORD dwSignerIndex, const BYTE* pbSignedBlob, DWORD cbSignedBlob,
+          BYTE* pbDecoded, DWORD* pcbDecoded, PCCERT_CONTEXT* ppSignerCert)
 {
-    FIXME("stub: %s %lx\n", debugstr_a(pszFuncName), dwFlags);
-    return NULL;
-}
-
-BOOL WINAPI CryptUnregisterDefaultOIDFunction(DWORD dwEncodingType,
-                                              LPCSTR pszFuncName, LPCWSTR pwszDll)
-{
-    FIXME("stub: %lx %s %s\n", dwEncodingType, debugstr_a(pszFuncName), debugstr_w(pwszDll));
+    FIXME("stub: %p, %ld, %p, %ld, %p, %p, %p\n",
+        pVerifyPara, dwSignerIndex, pbSignedBlob, cbSignedBlob,
+        pbDecoded, pcbDecoded, ppSignerCert);
     return FALSE;
 }

Modified: vendor/wine/dlls/crypt32/current/crypt32.spec
--- vendor/wine/dlls/crypt32/current/crypt32.spec	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/crypt32/current/crypt32.spec	2005-12-12 20:26:19 UTC (rev 20113)
@@ -102,13 +102,13 @@
 @ stdcall CryptExportPublicKeyInfoEx(long long long str long ptr ptr ptr)
 @ stub CryptFindOIDInfo
 @ stub CryptFormatObject
-@ stub CryptFreeOIDFunctionAddress
+@ stdcall CryptFreeOIDFunctionAddress(long long)
 @ stub CryptGetAsyncParam
-@ stub CryptGetDefaultOIDDllList
-@ stub CryptGetDefaultOIDFunctionAddress
+@ stdcall CryptGetDefaultOIDDllList(long long ptr ptr)
+@ stdcall CryptGetDefaultOIDFunctionAddress(long long wstr long ptr ptr)
 @ stub CryptGetMessageCertificates
 @ stub CryptGetMessageSignerCount
-@ stub CryptGetOIDFunctionAddress
+@ stdcall CryptGetOIDFunctionAddress(long long str long ptr ptr)
 @ stdcall CryptGetOIDFunctionValue(long str str wstr ptr ptr ptr)
 @ stdcall CryptHashCertificate(long long long ptr long ptr ptr)
 @ stub CryptHashMessage
@@ -118,7 +118,7 @@
 @ stdcall CryptImportPublicKeyInfo(long long ptr ptr)
 @ stdcall CryptImportPublicKeyInfoEx(long long ptr long long ptr ptr)
 @ stdcall CryptInitOIDFunctionSet(str long)
-@ stub CryptInstallOIDFunctionAddress
+@ stdcall CryptInstallOIDFunctionAddress(ptr long str long ptr long)
 @ stub CryptLoadSip
 @ stdcall CryptMemAlloc(long)
 @ stdcall CryptMemFree(ptr)
@@ -162,16 +162,16 @@
 @ stub CryptVerifyDetachedMessageHash
 @ stub CryptVerifyDetachedMessageSignature
 @ stub CryptVerifyMessageHash
-@ stub CryptVerifyMessageSignature
+@ stdcall CryptVerifyMessageSignature(ptr long ptr long ptr ptr ptr)
 @ stub CryptVerifyMessageSignatureWithKey
 @ stub CryptVerifySignatureU
 @ stdcall I_CryptAllocTls()
-@ stdcall I_CryptCreateLruCache(long long)
+@ stdcall I_CryptCreateLruCache(ptr ptr)
 @ stub I_CryptCreateLruEntry
 @ stdcall I_CryptDetachTls(long)
-@ stdcall I_CryptFindLruEntryData(long)
-@ stdcall I_CryptFlushLruCache(long)
-@ stdcall I_CryptFreeLruCache(long)
+@ stdcall I_CryptFindLruEntryData(long long long)
+@ stdcall I_CryptFlushLruCache(ptr long long)
+@ stdcall I_CryptFreeLruCache(ptr long long)
 @ stdcall I_CryptFreeTls(long long)
 @ stub I_CryptGetDefaultCryptProv
 @ stub I_CryptGetDefaultCryptProvForEncrypt

Modified: vendor/wine/dlls/crypt32/current/crypt32_private.h
--- vendor/wine/dlls/crypt32/current/crypt32_private.h	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/crypt32/current/crypt32_private.h	2005-12-12 20:26:19 UTC (rev 20113)
@@ -24,4 +24,7 @@
  */
 HCRYPTPROV CRYPT_GetDefaultProvider(void);
 
+void CRYPT_InitFunctionSets(void);
+void CRYPT_FreeFunctionSets(void);
+
 #endif

Modified: vendor/wine/dlls/crypt32/current/encode.c
--- vendor/wine/dlls/crypt32/current/encode.c	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/crypt32/current/encode.c	2005-12-12 20:26:19 UTC (rev 20113)
@@ -1,5 +1,4 @@
 /*
- * Copyright 2002 Mike McCormack for CodeWeavers
  * Copyright 2005 Juan Lang
  *
  * This library is free software; you can redistribute it and/or
@@ -67,8 +66,6 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(crypt);
 
-static const WCHAR szDllName[] = { 'D','l','l',0 };
-
 typedef BOOL (WINAPI *CryptEncodeObjectFunc)(DWORD, LPCSTR, const void *,
  BYTE *, DWORD *);
 typedef BOOL (WINAPI *CryptEncodeObjectExFunc)(DWORD, LPCSTR, const void *,
@@ -182,260 +179,12 @@
     return EXCEPTION_CONTINUE_SEARCH;
 }
 
-static char *CRYPT_GetKeyName(DWORD dwEncodingType, LPCSTR pszFuncName,
- LPCSTR pszOID)
-{
-    static const char szEncodingTypeFmt[] =
-     "Software\\Microsoft\\Cryptography\\OID\\EncodingType %ld\\%s\\%s";
-    UINT len;
-    char numericOID[7]; /* enough for "#65535" */
-    const char *oid;
-    LPSTR szKey;
-
-    /* MSDN says the encoding type is a mask, but it isn't treated that way.
-     * (E.g., if dwEncodingType were 3, the key names "EncodingType 1" and
-     * "EncodingType 2" would be expected if it were a mask.  Instead native
-     * stores values in "EncodingType 3".
-     */
-    if (!HIWORD(pszOID))
-    {
-        snprintf(numericOID, sizeof(numericOID), "#%d", LOWORD(pszOID));
-        oid = numericOID;
-    }
-    else
-        oid = pszOID;
-
-    /* This is enough: the lengths of the two string parameters are explicitly
-     * counted, and we need up to five additional characters for the encoding
-     * type.  These are covered by the "%d", "%s", and "%s" characters in the
-     * format specifier that are removed by sprintf.
-     */
-    len = sizeof(szEncodingTypeFmt) + lstrlenA(pszFuncName) + lstrlenA(oid);
-    szKey = CryptMemAlloc(len);
-    if (szKey)
-        sprintf(szKey, szEncodingTypeFmt, dwEncodingType, pszFuncName, oid);
-    return szKey;
-}
-
-BOOL WINAPI CryptRegisterOIDFunction(DWORD dwEncodingType, LPCSTR pszFuncName,
-                  LPCSTR pszOID, LPCWSTR pwszDll, LPCSTR pszOverrideFuncName)
-{
-    LONG r;
-    HKEY hKey;
-    LPSTR szKey;
-
-    TRACE("%lx %s %s %s %s\n", dwEncodingType, pszFuncName, pszOID,
-          debugstr_w(pwszDll), pszOverrideFuncName);
-
-    /* This only registers functions for encoding certs, not messages */
-    if (!GET_CERT_ENCODING_TYPE(dwEncodingType))
-        return TRUE;
-
-    /* Native does nothing pwszDll is NULL */
-    if (!pwszDll)
-        return TRUE;
-
-    /* I'm not matching MS bug for bug here, because I doubt any app depends on
-     * it:
-     * - native "succeeds" if pszFuncName is NULL, but the nonsensical entry
-     *   it creates would never be used
-     * - native returns an HRESULT rather than a Win32 error if pszOID is NULL.
-     * Instead I disallow both of these with ERROR_INVALID_PARAMETER.
-     */
-    if (!pszFuncName || !pszOID)
-    {
-        SetLastError(ERROR_INVALID_PARAMETER);
-        return FALSE;
-    }
-
-    szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
-    TRACE("Key name is %s\n", debugstr_a(szKey));
-
-    if (!szKey)
-        return FALSE;
-
-    r = RegCreateKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey);
-    CryptMemFree(szKey);
-    if(r != ERROR_SUCCESS)
-        return FALSE;
-
-    /* write the values */
-    if (pszOverrideFuncName)
-        RegSetValueExA(hKey, "FuncName", 0, REG_SZ, (const BYTE*)pszOverrideFuncName,
-         lstrlenA(pszOverrideFuncName) + 1);
-    RegSetValueExW(hKey, szDllName, 0, REG_SZ, (const BYTE*) pwszDll,
-                    (lstrlenW(pwszDll) + 1) * sizeof (WCHAR));
-
-    RegCloseKey(hKey);
-    return TRUE;
-}
-
-BOOL WINAPI CryptUnregisterOIDFunction(DWORD dwEncodingType, LPCSTR pszFuncName,
- LPCSTR pszOID)
-{
-    LPSTR szKey;
-    LONG rc;
-
-    TRACE("%lx %s %s\n", dwEncodingType, pszFuncName, pszOID);
-
-    if (!GET_CERT_ENCODING_TYPE(dwEncodingType))
-        return TRUE;
-
-    if (!pszFuncName || !pszOID)
-    {
-        SetLastError(ERROR_INVALID_PARAMETER);
-        return FALSE;
-    }
-
-    szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
-    rc = RegDeleteKeyA(HKEY_LOCAL_MACHINE, szKey);
-    CryptMemFree(szKey);
-    if (rc)
-        SetLastError(rc);
-    return rc ? FALSE : TRUE;
-}
-
-BOOL WINAPI CryptGetOIDFunctionValue(DWORD dwEncodingType, LPCSTR pszFuncName,
- LPCSTR pszOID, LPCWSTR pwszValueName, DWORD *pdwValueType, BYTE *pbValueData,
- DWORD *pcbValueData)
-{
-    LPSTR szKey;
-    LONG rc;
-    HKEY hKey;
-
-    TRACE("%lx %s %s %s %p %p %p\n", dwEncodingType, debugstr_a(pszFuncName),
-     debugstr_a(pszOID), debugstr_w(pwszValueName), pdwValueType, pbValueData,
-     pcbValueData);
-
-    if (!GET_CERT_ENCODING_TYPE(dwEncodingType))
-        return TRUE;
-
-    if (!pszFuncName || !pszOID || !pwszValueName)
-    {
-        SetLastError(ERROR_INVALID_PARAMETER);
-        return FALSE;
-    }
-
-    szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
-    rc = RegOpenKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey);
-    CryptMemFree(szKey);
-    if (rc)
-        SetLastError(rc);
-    else
-    {
-        rc = RegQueryValueExW(hKey, pwszValueName, NULL, pdwValueType,
-         pbValueData, pcbValueData);
-        if (rc)
-            SetLastError(rc);
-        RegCloseKey(hKey);
-    }
-    return rc ? FALSE : TRUE;
-}
-
-BOOL WINAPI CryptSetOIDFunctionValue(DWORD dwEncodingType, LPCSTR pszFuncName,
- LPCSTR pszOID, LPCWSTR pwszValueName, DWORD dwValueType,
- const BYTE *pbValueData, DWORD cbValueData)
-{
-    LPSTR szKey;
-    LONG rc;
-    HKEY hKey;
-
-    TRACE("%lx %s %s %s %ld %p %ld\n", dwEncodingType, debugstr_a(pszFuncName),
-     debugstr_a(pszOID), debugstr_w(pwszValueName), dwValueType, pbValueData,
-     cbValueData);
-
-    if (!GET_CERT_ENCODING_TYPE(dwEncodingType))
-        return TRUE;
-
-    if (!pszFuncName || !pszOID || !pwszValueName)
-    {
-        SetLastError(ERROR_INVALID_PARAMETER);
-        return FALSE;
-    }
-
-    szKey = CRYPT_GetKeyName(dwEncodingType, pszFuncName, pszOID);
-    rc = RegOpenKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey);
-    CryptMemFree(szKey);
-    if (rc)
-        SetLastError(rc);
-    else
-    {
-        rc = RegSetValueExW(hKey, pwszValueName, 0, dwValueType, pbValueData,
-         cbValueData);
-        if (rc)
-            SetLastError(rc);
-        RegCloseKey(hKey);
-    }
-    return rc ? FALSE : TRUE;
-}
-
-/* Gets the registered function named szFuncName for dwCertEncodingType and
- * lpszStructType, or NULL if one could not be found.  *lib will be set to the
- * handle of the module it's in, or NULL if no module was loaded.  If the
- * return value is NULL, *lib will also be NULL, to simplify error handling.
- */
-static void *CRYPT_GetFunc(DWORD dwCertEncodingType, LPCSTR lpszStructType,
- LPCSTR szFuncName, HMODULE *lib)
-{
-    void *ret = NULL;
-    char *szKey = CRYPT_GetKeyName(dwCertEncodingType, szFuncName,
-     lpszStructType);
-    const char *funcName;
-    long r;
-    HKEY hKey;
-    DWORD type, size = 0;
-
-    TRACE("(%08lx %s %s %p)\n", dwCertEncodingType, debugstr_a(lpszStructType),
-     debugstr_a(szFuncName), lib);
-
-    *lib = NULL;
-    r = RegOpenKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey);
-    CryptMemFree(szKey);
-    if(r != ERROR_SUCCESS)
-        return NULL;
-
-    RegQueryValueExA(hKey, "FuncName", NULL, &type, NULL, &size);
-    if (GetLastError() == ERROR_MORE_DATA && type == REG_SZ)
-    {
-        funcName = CryptMemAlloc(size);
-        RegQueryValueExA(hKey, "FuncName", NULL, &type, (LPBYTE)funcName,
-         &size);
-    }
-    else
-        funcName = szFuncName;
-    RegQueryValueExW(hKey, szDllName, NULL, &type, NULL, &size);
-    if (GetLastError() == ERROR_MORE_DATA && type == REG_SZ)
-    {
-        LPWSTR dllName = CryptMemAlloc(size);
-
-        RegQueryValueExW(hKey, szDllName, NULL, &type, (LPBYTE)dllName,
-         &size);
-        *lib = LoadLibraryW(dllName);
-        if (*lib)
-        {
-             ret = GetProcAddress(*lib, funcName);
-             if (!ret)
-             {
-                 /* Unload the library, the caller doesn't want to unload it
-                  * when the return value is NULL.
-                  */
-                 FreeLibrary(*lib);
-                 *lib = NULL;
-             }
-        }
-        CryptMemFree(dllName);
-    }
-    if (funcName != szFuncName)
-        CryptMemFree((char *)funcName);
-    TRACE("returning %p\n", ret);
-    return ret;
-}
-
 BOOL WINAPI CryptEncodeObject(DWORD dwCertEncodingType, LPCSTR lpszStructType,
  const void *pvStructInfo, BYTE *pbEncoded, DWORD *pcbEncoded)
 {
+    static HCRYPTOIDFUNCSET set = NULL;
     BOOL ret = FALSE;
-    HMODULE lib;
+    HCRYPTOIDFUNCADDR hFunc;
     CryptEncodeObjectFunc pCryptEncodeObject;
 
     TRACE("(0x%08lx, %s, %p, %p, %p)\n", dwCertEncodingType,
@@ -449,14 +198,15 @@
     }
 
     /* Try registered DLL first.. */
-    pCryptEncodeObject =
-     (CryptEncodeObjectFunc)CRYPT_GetFunc(dwCertEncodingType,
-     lpszStructType, CRYPT_OID_ENCODE_OBJECT_FUNC, &lib);
+    if (!set)
+        set = CryptInitOIDFunctionSet(CRYPT_OID_ENCODE_OBJECT_FUNC, 0);
+    CryptGetOIDFunctionAddress(set, dwCertEncodingType, lpszStructType, 0,
+     (void **)&pCryptEncodeObject, &hFunc);
     if (pCryptEncodeObject)
     {
         ret = pCryptEncodeObject(dwCertEncodingType, lpszStructType,
          pvStructInfo, pbEncoded, pcbEncoded);
-        FreeLibrary(lib);
+        CryptFreeOIDFunctionAddress(hFunc, 0);
     }
     else
     {
@@ -2272,9 +2022,10 @@
  const void *pvStructInfo, DWORD dwFlags, PCRYPT_ENCODE_PARA pEncodePara,
  void *pvEncoded, DWORD *pcbEncoded)
 {
+    static HCRYPTOIDFUNCSET set = NULL;
     BOOL ret = FALSE;
-    HMODULE lib = NULL;
     CryptEncodeObjectExFunc encodeFunc = NULL;
+    HCRYPTOIDFUNCADDR hFunc = NULL;
 
     TRACE("(0x%08lx, %s, %p, 0x%08lx, %p, %p, %p)\n", dwCertEncodingType,
      debugstr_a(lpszStructType), pvStructInfo, dwFlags, pEncodePara,
@@ -2384,15 +2135,19 @@
         TRACE("OID %s not found or unimplemented, looking for DLL\n",
          debugstr_a(lpszStructType));
     if (!encodeFunc)
-        encodeFunc = (CryptEncodeObjectExFunc)CRYPT_GetFunc(dwCertEncodingType,
-         lpszStructType, CRYPT_OID_ENCODE_OBJECT_EX_FUNC, &lib);
+    {
+        if (!set)
+            set = CryptInitOIDFunctionSet(CRYPT_OID_ENCODE_OBJECT_EX_FUNC, 0);
+        CryptGetOIDFunctionAddress(set, dwCertEncodingType, lpszStructType, 0,
+         (void **)&encodeFunc, &hFunc);
+    }
     if (encodeFunc)
         ret = encodeFunc(dwCertEncodingType, lpszStructType, pvStructInfo,
          dwFlags, pEncodePara, pvEncoded, pcbEncoded);
     else
         SetLastError(ERROR_FILE_NOT_FOUND);
-    if (lib)
-        FreeLibrary(lib);
+    if (hFunc)
+        CryptFreeOIDFunctionAddress(hFunc, 0);
     return ret;
 }
 
@@ -2400,9 +2155,10 @@
  const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, void *pvStructInfo,
  DWORD *pcbStructInfo)
 {
+    static HCRYPTOIDFUNCSET set = NULL;
     BOOL ret = FALSE;
-    HMODULE lib;
     CryptDecodeObjectFunc pCryptDecodeObject;
+    HCRYPTOIDFUNCADDR hFunc;
 
     TRACE("(0x%08lx, %s, %p, %ld, 0x%08lx, %p, %p)\n", dwCertEncodingType,
      debugstr_a(lpszStructType), pbEncoded, cbEncoded, dwFlags,
@@ -2415,14 +2171,15 @@
     }
 
     /* Try registered DLL first.. */
-    pCryptDecodeObject =
-     (CryptDecodeObjectFunc)CRYPT_GetFunc(dwCertEncodingType,
-     lpszStructType, CRYPT_OID_DECODE_OBJECT_FUNC, &lib);
+    if (!set)
+        set = CryptInitOIDFunctionSet(CRYPT_OID_DECODE_OBJECT_FUNC, 0);
+    CryptGetOIDFunctionAddress(set, dwCertEncodingType, lpszStructType, 0,
+     (void **)&pCryptDecodeObject, &hFunc);
     if (pCryptDecodeObject)
     {
         ret = pCryptDecodeObject(dwCertEncodingType, lpszStructType,
          pbEncoded, cbEncoded, dwFlags, pvStructInfo, pcbStructInfo);
-        FreeLibrary(lib);
+        CryptFreeOIDFunctionAddress(hFunc, 0);
     }
     else
     {
@@ -5386,9 +5143,10 @@
  const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags,
  PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo)
 {
+    static HCRYPTOIDFUNCSET set = NULL;
     BOOL ret = FALSE;
-    HMODULE lib = NULL;
     CryptDecodeObjectExFunc decodeFunc = NULL;
+    HCRYPTOIDFUNCADDR hFunc = NULL;
 
     TRACE("(0x%08lx, %s, %p, %ld, 0x%08lx, %p, %p, %p)\n",
      dwCertEncodingType, debugstr_a(lpszStructType), pbEncoded,
@@ -5508,15 +5266,19 @@
         TRACE("OID %s not found or unimplemented, looking for DLL\n",
          debugstr_a(lpszStructType));
     if (!decodeFunc)
-        decodeFunc = (CryptDecodeObjectExFunc)CRYPT_GetFunc(dwCertEncodingType,
-         lpszStructType, CRYPT_OID_DECODE_OBJECT_EX_FUNC, &lib);
+    {
+        if (!set)
+            set = CryptInitOIDFunctionSet(CRYPT_OID_DECODE_OBJECT_EX_FUNC, 0);
+        CryptGetOIDFunctionAddress(set, dwCertEncodingType, lpszStructType, 0,
+         (void **)&decodeFunc, &hFunc);
+    }
     if (decodeFunc)
         ret = decodeFunc(dwCertEncodingType, lpszStructType, pbEncoded,
          cbEncoded, dwFlags, pDecodePara, pvStructInfo, pcbStructInfo);
     else
         SetLastError(ERROR_FILE_NOT_FOUND);
-    if (lib)
-        FreeLibrary(lib);
+    if (hFunc)
+        CryptFreeOIDFunctionAddress(hFunc, 0);
     return ret;
 }
 
@@ -5609,9 +5371,10 @@
  DWORD dwCertEncodingType, LPSTR pszPublicKeyObjId, DWORD dwFlags,
  void *pvAuxInfo, PCERT_PUBLIC_KEY_INFO pInfo, DWORD *pcbInfo)
 {
+    static HCRYPTOIDFUNCSET set = NULL;
     BOOL ret;
     ExportPublicKeyInfoExFunc exportFunc = NULL;
-    HMODULE lib = NULL;
+    HCRYPTOIDFUNCADDR hFunc = NULL;
 
     TRACE("(%ld, %ld, %08lx, %s, %08lx, %p, %p, %p)\n", hCryptProv, dwKeySpec,
      dwCertEncodingType, debugstr_a(pszPublicKeyObjId), dwFlags, pvAuxInfo,
@@ -5624,14 +5387,19 @@
     }
 
     if (pszPublicKeyObjId)
-        exportFunc = CRYPT_GetFunc(dwCertEncodingType, pszPublicKeyObjId,
-         CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC, &lib);
+    {
+        if (!set)
+            set = CryptInitOIDFunctionSet(CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC,
+             0);
+        CryptGetOIDFunctionAddress(set, dwCertEncodingType, pszPublicKeyObjId,
+         0, (void **)&exportFunc, &hFunc);
+    }
     if (!exportFunc)
         exportFunc = CRYPT_ExportRsaPublicKeyInfoEx;
     ret = exportFunc(hCryptProv, dwKeySpec, dwCertEncodingType,
      pszPublicKeyObjId, dwFlags, pvAuxInfo, pInfo, pcbInfo);
-    if (lib)
-        FreeLibrary(lib);
+    if (hFunc)
+        CryptFreeOIDFunctionAddress(hFunc, 0);
     return ret;
 }
 
@@ -5682,20 +5450,23 @@
  DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pInfo, ALG_ID aiKeyAlg,
  DWORD dwFlags, void *pvAuxInfo, HCRYPTKEY *phKey)
 {
+    static HCRYPTOIDFUNCSET set = NULL;
     BOOL ret;
     ImportPublicKeyInfoExFunc importFunc = NULL;
-    HMODULE lib = NULL;
+    HCRYPTOIDFUNCADDR hFunc = NULL;
 
     TRACE("(%ld, %ld, %p, %d, %08lx, %p, %p)\n", hCryptProv,
      dwCertEncodingType, pInfo, aiKeyAlg, dwFlags, pvAuxInfo, phKey);
 
-    importFunc = CRYPT_GetFunc(dwCertEncodingType, pInfo->Algorithm.pszObjId,
-     CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC, &lib);
+    if (!set)
+        set = CryptInitOIDFunctionSet(CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC, 0);
+    CryptGetOIDFunctionAddress(set, dwCertEncodingType,
+     pInfo->Algorithm.pszObjId, 0, (void **)&importFunc, &hFunc);
     if (!importFunc)
         importFunc = CRYPT_ImportRsaPublicKeyInfoEx;
     ret = importFunc(hCryptProv, dwCertEncodingType, pInfo, aiKeyAlg, dwFlags,
      pvAuxInfo, phKey);
-    if (lib)
-        FreeLibrary(lib);
+    if (hFunc)
+        CryptFreeOIDFunctionAddress(hFunc, 0);
     return ret;
 }

Modified: vendor/wine/dlls/crypt32/current/main.c
--- vendor/wine/dlls/crypt32/current/main.c	2005-12-12 20:25:02 UTC (rev 20112)
+++ vendor/wine/dlls/crypt32/current/main.c	2005-12-12 20:26:19 UTC (rev 20113)
@@ -38,7 +38,11 @@
 {
     switch (fdwReason)
     {
+        case DLL_PROCESS_ATTACH:
+            CRYPT_InitFunctionSets();
+            break;
         case DLL_PROCESS_DETACH:
+            CRYPT_FreeFunctionSets();
             if (hDefProv) CryptReleaseContext(hDefProv, 0);
             break;
     }
@@ -53,30 +57,37 @@
     return hDefProv;
 }
 
-/* this function is called by Internet Explorer when it is about to verify a downloaded component */
-BOOL WINAPI I_CryptCreateLruCache(DWORD x, DWORD y)
+typedef void * HLRUCACHE;
+
+/* this function is called by Internet Explorer when it is about to verify a
+ * downloaded component.  The first parameter appears to be a pointer to an
+ * unknown type, native fails unless it points to a buffer of at least 20 bytes.
+ * The second parameter appears to be an out parameter, whatever it's set to is
+ * passed (by cryptnet.dll) to I_CryptFlushLruCache.
+ */
+BOOL WINAPI I_CryptCreateLruCache(void *unknown, HLRUCACHE *out)
 {
-    FIXME("stub!\n");
-    return FALSE;
+    FIXME("(%p, %p): stub!\n", unknown, out);
+    *out = (void *)0xbaadf00d;
+    return TRUE;
 }
 
-/* these functions all have an unknown number of args */
-BOOL WINAPI I_CryptFindLruEntryData(DWORD x)
+BOOL WINAPI I_CryptFindLruEntryData(DWORD unk0, DWORD unk1, DWORD unk2)
 {
-    FIXME("stub!\n");
+    FIXME("(%08lx, %08lx, %08lx): stub!\n", unk0, unk1, unk2);
[truncated at 1000 lines; 8999 more skipped]