source: trunk/src/shell32/misc.cpp@ 4080

Last change on this file since 4080 was 4032, checked in by phaller, 25 years ago

Synchronized shell32 with wine

File size: 11.7 KB
Line 
1/* $Id: misc.cpp,v 1.8 2000-08-18 02:01:16 phaller Exp $ */
2
3/*
4 * Win32 SHELL32 for OS/2
5 * 1998/06/15 Patrick Haller (haller@zebra.fh-weingarten.de)
6 * Copyright 1997 Marcus Meissner
7 * Copyright 1988 Patrick Haller (adapted for win32os2)
8 * Project Odin Software License can be found in LICENSE.TXT
9 *
10 */
11
12
13/*****************************************************************************
14 * Includes *
15 *****************************************************************************/
16
17#include <odin.h>
18#include <odinwrap.h>
19#include <os2sel.h>
20
21#include <wchar.h>
22#include <wcstr.h>
23
24#define ICOM_CINTERFACE 1
25
26//#include <os2win.h>
27#include <shellapi.h>
28#include <winnls.h>
29#include "shell32_main.h"
30#include "wine/undocshell.h"
31#include <misc.h>
32//#include <string.h>
33//#include "winbase.h"
34#include <heapstring.h>
35
36
37/*****************************************************************************
38 * Types & Defines *
39 *****************************************************************************/
40
41ODINDEBUGCHANNEL(SHELL32-MISC)
42
43
44/*****************************************************************************
45 * Name : ExtractAssociatedIconExA
46 * Purpose : Return icon for given file (either from file itself or from associated
47 * executable) and patch parameters if needed.
48 * Parameters: ???
49 * Variables :
50 * Result :
51 * Remark : SHELL.150
52 * Status : UNTESTED UNKNOWN STUB
53 *
54 * Author : Christoph Bratschi [Fri, 1999/08/6 20:00]
55 *****************************************************************************/
56
57ODINFUNCTION3(HICON, ExtractAssociatedIconExA,
58 HINSTANCE, hInst,
59 LPSTR, lpIconPath,
60 LPWORD, lpiIcon)
61{
62 dprintf(("SHELL32: undoc ExtractAssociatedIconExA\n"));
63
64 return ExtractAssociatedIconA(hInst,lpIconPath,lpiIcon);
65}
66
67/*****************************************************************************
68 * Name : ExtractAssociatedIconW
69 * Purpose : Return icon for given file (either from file itself or from associated
70 * executable) and patch parameters if needed.
71 * Parameters:
72 * Variables :
73 * Result :
74 * Remark : SHELL.36
75 * Status : UNTESTED STUB
76 *
77 * Author : Patrick Haller [Sat, 1998/07/11 11:55]
78 *****************************************************************************/
79
80ODINFUNCTION3(HICON, ExtractAssociatedIconW,
81 HINSTANCE, hInst,
82 LPWSTR, lpIconPath,
83 LPWORD, lpiIcon)
84{
85 LPSTR lpIconPathAscii = UnicodeToAsciiString(lpIconPath);
86 HICON hIcon;
87
88 hIcon = ExtractAssociatedIconA(hInst,
89 lpIconPathAscii,
90 lpiIcon);
91
92 FreeAsciiString(lpIconPathAscii);
93
94 return (hIcon);
95}
96
97/*****************************************************************************
98 * Name : ExtractAssociatedIconExW
99 * Purpose : Return icon for given file (either from file itself or from associated
100 * executable) and patch parameters if needed.
101 * Parameters: ???
102 * Variables :
103 * Result :
104 * Remark : SHELL.186
105 * Status : UNTESTED UNKNOWN STUB
106 *
107 * Author : Christoph Bratschi [Fri, 1999/08/6 20:00]
108 *****************************************************************************/
109
110ODINFUNCTION3(HICON, ExtractAssociatedIconExW,
111 HINSTANCE, hInst,
112 LPWSTR, lpIconPath,
113 LPWORD, lpiIcon)
114{
115 dprintf(("SHELL32: undoc ExtractAssociatedIconExW\n"));
116
117 return ExtractAssociatedIconW(hInst,lpIconPath,lpiIcon);
118}
119
120
121/*****************************************************************************
122 * Name : OleStrToStrN
123 * Purpose :
124 * Parameters:
125 * Variables :
126 * Result :
127 * Remark : SHELL32.78
128 * Status : UNTESTED UNKNOWN STUB
129 *
130 * Author : Patrick Haller [Tue, 1998/06/15 03:00]
131 *****************************************************************************/
132
133ODINFUNCTION4(BOOL, OleStrToStrN,
134 LPSTR, lpMulti,
135 INT, nMulti,
136 LPCWSTR, lpWide,
137 INT, nWide)
138{
139 return WideCharToMultiByte (0,
140 0,
141 lpWide,
142 nWide,
143 lpMulti,
144 nMulti,
145 NULL,
146 NULL);
147}
148
149
150/*****************************************************************************
151 * Name : StrToOleStrN
152 * Purpose :
153 * Parameters:
154 * Variables :
155 * Result :
156 * Remark : SHELL32.79
157 * Status : UNTESTED UNKNOWN STUB
158 *
159 * Author : Patrick Haller [Tue, 1998/06/15 03:00]
160 *****************************************************************************/
161
162ODINFUNCTION4(BOOL, StrToOleStrN,
163 LPWSTR, lpWide,
164 INT, nWide,
165 LPCSTR, lpMulti,
166 INT, nMulti)
167{
168 return MultiByteToWideChar (0,
169 0,
170 lpMulti,
171 nMulti,
172 lpWide,
173 nWide);
174}
175
176
177/*****************************************************************************
178 * Name : StrRetToStrN
179 * Purpose : converts a STRRET to a normal string
180 * Parameters: the pidl is for STRRET OFFSET
181 * Variables :
182 * Result :
183 * Remark : SHELL32.96
184 * Status : UNTESTED UNKNOWN STUB
185 *
186 * Author : Patrick Haller [Tue, 1998/06/15 03:00]
187 *****************************************************************************/
188
189ODINFUNCTION4(HRESULT, StrRetToStrN,
190 LPVOID, dest,
191 DWORD, len,
192 LPSTRRET, src,
193 LPITEMIDLIST, pidl)
194{
195 switch (src->uType)
196 {
197 case STRRET_WSTR:
198 WideCharToMultiByte(CP_ACP,
199 0,
200 src->u.pOleStr,
201 -1,
202 (LPSTR)dest,
203 len,
204 NULL,
205 NULL);
206 SHFree(src->u.pOleStr);
207 break;
208
209 case STRRET_CSTRA:
210 //if (VERSION_OsIsUnicode())
211 // lstrcpynAtoW((LPWSTR)dest, src->u.cStr, len);
212 //else
213 strncpy((LPSTR)dest,
214 src->u.cStr,
215 len);
216 break;
217
218 case STRRET_OFFSETA:
219 if (pidl)
220 {
221 //if(VERSION_OsIsUnicode())
222 // lstrcpynAtoW((LPWSTR)dest, ((LPCSTR)&pidl->mkid)+src->u.uOffset, len);
223 //else
224 strncpy((LPSTR)dest,
225 ((LPCSTR)&pidl->mkid)+src->u.uOffset,
226 len);
227 break;
228 }
229
230 default:
231 dprintf(("SHELL32: StrRetToStrN: unknown type!\n"));
232
233 if (len)
234 *(LPSTR)dest = '\0';
235
236 return(FALSE);
237 }
238 return(TRUE);
239}
240
241
242/*****************************************************************************
243 * Name : SHELL32_654
244 * Purpose :
245 * Parameters:
246 * Variables :
247 * Result :
248 * Remark : SHELL32.654
249 * Status : UNTESTED UNKNOWN STUB
250 *
251 * Author : Patrick Haller [Tue, 1998/06/15 03:00]
252 *****************************************************************************/
253
254ODINFUNCTION2(HRESULT, SHELL32_654,
255 DWORD, x,
256 DWORD, y)
257{
258 dprintf(("SHELL32: SHELL32_654(%08xh,%08xh) not implemented.\n",
259 x,
260 y));
261 return 0;
262}
263
264
265/*****************************************************************************
266 * Name : StrToOleStr
267 * Purpose :
268 * Parameters:
269 * Variables :
270 * Result :
271 * Remark : SHELL32.163
272 * Status : UNTESTED UNKNOWN STUB
273 *
274 * Author : Patrick Haller [Tue, 1998/06/15 03:00]
275 *****************************************************************************/
276
277ODINFUNCTION2(int, StrToOleStr,
278 LPWSTR, lpWideCharStr,
279 LPCSTR, lpMultiByteString)
280{
281 return MultiByteToWideChar(0,
282 0,
283 lpMultiByteString,
284 -1,
285 lpWideCharStr,
286 MAX_PATH);
287}
288
289/*****************************************************************************
290 * Name : InternalExtractIconListA
291 * Purpose :
292 * Parameters: ???
293 * Variables :
294 * Result :
295 * Remark : SHELL32.221 - used by progman.exe
296 * Status : UNTESTED UNKNOWN STUB
297 *
298 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00]
299 *****************************************************************************/
300
301ODINFUNCTION1(DWORD, InternalExtractIconListA, DWORD, dwArg1)
302{
303 dprintf(("SHELL32: undoc InternalExtractIconListA \n"));
304 return 0;
305}
306
307/*****************************************************************************
308 * Name : InternalExtractIconListW
309 * Purpose :
310 * Parameters: ???
311 * Variables :
312 * Result :
313 * Remark : SHELL32.222 - used by progman.exe
314 * Status : UNTESTED UNKNOWN STUB
315 *
316 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00]
317 *****************************************************************************/
318
319ODINFUNCTION1(DWORD, InternalExtractIconListW, DWORD, dwArg1)
320{
321 dprintf(("SHELL32: undoc InternalExtractIconListW\n"));
322 return 0;
323}
324
325/*****************************************************************************
326 * Name : ExtractIconResInfoA
327 * Purpose :
328 * Parameters: ???
329 * Variables :
330 * Result :
331 * Remark : SHELL32.192 - used by progman.exe
332 * Status : UNTESTED UNKNOWN STUB
333 *
334 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00]
335 *****************************************************************************/
336
337ODINFUNCTION1(DWORD, ExtractIconResInfoA, DWORD, dwArg1)
338{
339 dprintf(("SHELL32: undoc ExtractIconResInfoA\n"));
340 return 0;
341}
342
343/*****************************************************************************
344 * Name : ExtractIconResInfoW
345 * Purpose :
346 * Parameters: ???
347 * Variables :
348 * Result :
349 * Remark : SHELL32.193 - used by progman.exe
350 * Status : UNTESTED UNKNOWN STUB
351 *
352 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00]
353 *****************************************************************************/
354
355ODINFUNCTION1(DWORD, ExtractIconResInfoW, DWORD, dwArg1)
356{
357 dprintf(("SHELL32: undoc ExtractIconResInfoW\n"));
358 return 0;
359}
360
361/*****************************************************************************
362 * Name : CheckEscapesA
363 * Purpose :
364 * Parameters: ???
365 * Variables :
366 * Result :
367 * Remark : SHELL32.3 - used by progman.exe
368 * Status : UNTESTED UNKNOWN STUB
369 *
370 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00]
371 *****************************************************************************/
372
373ODINPROCEDURE2(CheckEscapesA,
374 DWORD, x1,
375 DWORD, x2)
376{
377 dprintf(("SHELL32: undoc CheckEscapesA\n"));
378}
379
380/*****************************************************************************
381 * Name : CheckEscapesW
382 * Purpose :
383 * Parameters: ???
384 * Variables :
385 * Result :
386 * Remark : SHELL32.6 - used by progman.exe
387 * Status : UNTESTED UNKNOWN STUB
388 *
389 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00]
390 *****************************************************************************/
391
392ODINPROCEDURE2(CheckEscapesW,
393 DWORD, x1,
394 DWORD, x2)
395{
396 dprintf(("SHELL32: undoc CheckEscapesW\n"));
397}
398
399/*****************************************************************************
400 * Name : DuplicateIcon
401 * Purpose :
402 * Parameters: ???
403 * Variables :
404 * Result :
405 * Remark : SHELL32.138 - used by progman.exe
406 * Status : UNTESTED UNKNOWN STUB
407 *
408 * Author : Christoph Bratschi [Fri, 1999/08/6 19:00]
409 *****************************************************************************/
410
411ODINFUNCTION1(DWORD, DuplicateIcon,
412 DWORD, x1)
413{
414 dprintf(("SHELL32: undoc DuplicateIcon\n"));
415
416 return 0;
417}
418
Note: See TracBrowser for help on using the repository browser.