Modified so that they do not use the VTABLE_FUNC macros that performed
[wine] / dlls / shell32 / classes.c
1 /*
2  *      file type mapping 
3  *      (HKEY_CLASSES_ROOT - Stuff)
4  *
5  *
6  */
7 #include <stdlib.h>
8 #include <string.h>
9 #include "debug.h"
10 #include "winerror.h"
11 #include "winreg.h"
12
13 #include "shlobj.h"
14 #include "shell32_main.h"
15
16 BOOL32 HCR_MapTypeToValue ( LPCSTR szExtension, LPSTR szFileType, DWORD len)
17 {       HKEY    hkey;
18
19         TRACE(shell, "%s %p\n",szExtension, szFileType );
20
21         if (RegOpenKeyEx32A(HKEY_CLASSES_ROOT,szExtension,0,0x02000000,&hkey))
22         { return FALSE;
23         }
24
25         if (RegQueryValue32A(hkey,NULL,szFileType,&len))
26         { RegCloseKey(hkey);
27           return FALSE;
28         }       
29
30         RegCloseKey(hkey);
31
32         TRACE(shell, "-- %s\n", szFileType );
33
34         return TRUE;
35 }
36 BOOL32 HCR_GetExecuteCommand ( LPCSTR szClass, LPCSTR szVerb, LPSTR szDest, DWORD len )
37 {       HKEY    hkey;
38         char    sTemp[256];
39         
40         TRACE(shell, "%s %s\n",szClass, szVerb );
41
42         sprintf(sTemp, "%s\\shell\\%s\\command",szClass, szVerb);
43
44         if (RegOpenKeyEx32A(HKEY_CLASSES_ROOT,sTemp,0,0x02000000,&hkey))
45         { return FALSE;
46         }
47
48         if (RegQueryValue32A(hkey,NULL,szDest,&len))
49         { RegCloseKey(hkey);
50           return FALSE;
51         }       
52         RegCloseKey(hkey);
53
54         TRACE(shell, "-- %s\n", szDest );
55
56         return TRUE;
57
58 }
59 /***************************************************************************************
60 *       HCR_GetDefaultIcon      [internal]
61 *
62 * Gets the icon for a filetype
63 */
64 BOOL32 HCR_GetDefaultIcon (LPCSTR szClass, LPSTR szDest, DWORD len, LPDWORD dwNr)
65 {       HKEY    hkey;
66         char    sTemp[256];
67         char    sNum[5];
68
69         TRACE(shell, "%s\n",szClass );
70
71         sprintf(sTemp, "%s\\DefaultIcon",szClass);
72
73         if (RegOpenKeyEx32A(HKEY_CLASSES_ROOT,sTemp,0,0x02000000,&hkey))
74         { return FALSE;
75         }
76
77         if (RegQueryValue32A(hkey,NULL,szDest,&len))
78         { RegCloseKey(hkey);
79           return FALSE;
80         }       
81
82         RegCloseKey(hkey);
83
84         if (ParseField32A (szDest, 2, sNum, 5))
85         { *dwNr=atoi(sNum);
86         }
87         
88         ParseField32A (szDest, 1, szDest, len);
89         
90         TRACE(shell, "-- %s %li\n", szDest, *dwNr );
91
92         return TRUE;
93
94 }
95