Implemented TREEVIEW_InsertItemW.
[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 "debugtools.h"
10 #include "winerror.h"
11 #include "winreg.h"
12
13 #include "shlobj.h"
14 #include "shell32_main.h"
15
16 DEFAULT_DEBUG_CHANNEL(shell)
17
18 BOOL HCR_MapTypeToValue ( LPCSTR szExtension, LPSTR szFileType, DWORD len)
19 {       HKEY    hkey;
20
21         TRACE("%s %p\n",szExtension, szFileType );
22
23         if (RegOpenKeyExA(HKEY_CLASSES_ROOT,szExtension,0,0x02000000,&hkey))
24         { return FALSE;
25         }
26
27         if (RegQueryValueA(hkey,NULL,szFileType,&len))
28         { RegCloseKey(hkey);
29           return FALSE;
30         }       
31
32         RegCloseKey(hkey);
33
34         TRACE("-- %s\n", szFileType );
35
36         return TRUE;
37 }
38 BOOL HCR_GetExecuteCommand ( LPCSTR szClass, LPCSTR szVerb, LPSTR szDest, DWORD len )
39 {       HKEY    hkey;
40         char    sTemp[256];
41         
42         TRACE("%s %s\n",szClass, szVerb );
43
44         sprintf(sTemp, "%s\\shell\\%s\\command",szClass, szVerb);
45
46         if (RegOpenKeyExA(HKEY_CLASSES_ROOT,sTemp,0,0x02000000,&hkey))
47         { return FALSE;
48         }
49
50         if (RegQueryValueA(hkey,NULL,szDest,&len))
51         { RegCloseKey(hkey);
52           return FALSE;
53         }       
54         RegCloseKey(hkey);
55
56         TRACE("-- %s\n", szDest );
57
58         return TRUE;
59
60 }
61 /***************************************************************************************
62 *       HCR_GetDefaultIcon      [internal]
63 *
64 * Gets the icon for a filetype
65 */
66 BOOL HCR_GetDefaultIcon (LPCSTR szClass, LPSTR szDest, DWORD len, LPDWORD dwNr)
67 {       HKEY    hkey;
68         char    sTemp[256];
69         char    sNum[5];
70
71         TRACE("%s\n",szClass );
72
73         sprintf(sTemp, "%s\\DefaultIcon",szClass);
74
75         if (RegOpenKeyExA(HKEY_CLASSES_ROOT,sTemp,0,0x02000000,&hkey))
76         { return FALSE;
77         }
78
79         if (RegQueryValueA(hkey,NULL,szDest,&len))
80         { RegCloseKey(hkey);
81           return FALSE;
82         }       
83
84         RegCloseKey(hkey);
85
86         if (ParseFieldA (szDest, 2, sNum, 5))
87         { *dwNr=atoi(sNum);
88         }
89         
90         ParseFieldA (szDest, 1, szDest, len);
91         
92         TRACE("-- %s %li\n", szDest, *dwNr );
93
94         return TRUE;
95
96 }
97