Stub implementation for MsiGetFileHashA/W.
[wine] / dlls / hhctrl.ocx / hhctrl.c
1 /*
2  * hhctrl implementation
3  *
4  * Copyright 2004 Krzysztof Foltman
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #include <stdarg.h>
22 #include <string.h>
23 #include "windef.h"
24 #include "winbase.h"
25 #include "wingdi.h"
26 #include "winnls.h"
27 #include "winuser.h"
28 #include "wine/debug.h"
29 #include "htmlhelp.h"
30
31 WINE_DEFAULT_DEBUG_CHANNEL(htmlhelp);
32
33 static const char *command_to_string(UINT command)
34 {
35 #define X(x) case x: return #x
36     switch (command)
37     {
38         X( HH_DISPLAY_TOPIC );
39         X( HH_DISPLAY_TOC );
40         X( HH_DISPLAY_INDEX );
41         X( HH_DISPLAY_SEARCH );
42         X( HH_SET_WIN_TYPE );
43         X( HH_GET_WIN_TYPE );
44         X( HH_GET_WIN_HANDLE );
45         X( HH_ENUM_INFO_TYPE );
46         X( HH_SET_INFO_TYPE );
47         X( HH_SYNC );
48         X( HH_RESERVED1 );
49         X( HH_RESERVED2 );
50         X( HH_RESERVED3 );
51         X( HH_KEYWORD_LOOKUP );
52         X( HH_DISPLAY_TEXT_POPUP );
53         X( HH_HELP_CONTEXT );
54         X( HH_TP_HELP_CONTEXTMENU );
55         X( HH_TP_HELP_WM_HELP );
56         X( HH_CLOSE_ALL );
57         X( HH_ALINK_LOOKUP );
58         X( HH_GET_LAST_ERROR );
59         X( HH_ENUM_CATEGORY );
60         X( HH_ENUM_CATEGORY_IT );
61         X( HH_RESET_IT_FILTER );
62         X( HH_SET_INCLUSIVE_FILTER );
63         X( HH_SET_EXCLUSIVE_FILTER );
64         X( HH_INITIALIZE );
65         X( HH_UNINITIALIZE );
66         X( HH_PRETRANSLATEMESSAGE );
67         X( HH_SET_GLOBAL_PROPERTY );
68     default: return "???";
69     }
70 #undef X
71 }
72
73 HWND WINAPI HtmlHelpW(HWND caller, LPCWSTR filename, UINT command, DWORD data)
74 {
75     FIXME("(%p, %s, command=%s, data=%ld): stub\n",
76           caller, debugstr_w( filename ),
77           command_to_string( command ), data);
78
79     switch (command)
80     {
81         case HH_DISPLAY_TOPIC:
82         case HH_DISPLAY_TOC:
83         case HH_DISPLAY_SEARCH:
84         case HH_HELP_CONTEXT:
85             MessageBoxA( NULL, "HTML Help functionality is currently unimplemented.\n\n"
86                          "Try installing Internet Explorer, or using a native hhctrl.ocx with the Mozilla ActiveX control.",
87                          "Wine", MB_OK | MB_ICONEXCLAMATION );
88         default:
89             return 0;
90     }
91 }
92
93 HWND WINAPI HtmlHelpA(HWND caller, LPCSTR filename, UINT command, DWORD data)
94 {
95     WCHAR *wfile = NULL;
96     HWND result;
97
98     if (filename)
99     {
100         DWORD len = MultiByteToWideChar( CP_ACP, 0, filename, -1, NULL, 0 );
101
102         wfile = HeapAlloc( GetProcessHeap(), 0, (len+1) * sizeof(WCHAR));
103         MultiByteToWideChar( CP_ACP, 0, filename, -1, wfile, len );
104     }
105
106     result = HtmlHelpW( caller, wfile, command, data );
107
108     HeapFree( GetProcessHeap(), 0, wfile );
109     return result;
110 }