61#define X(x) case x: return #x
95 default:
return "???";
102 static const WCHAR helpW[] = {
'\\',
'h',
'e',
'l',
'p',
'\\',0};
103 static const WCHAR delimW[] = {
':',
':',0};
104 static const WCHAR delim2W[] = {
'>',0};
168 TRACE(
"(%p, %s, command=%s, data=%Ix)\n",
194 index = default_index;
209 if(!
info->WinType.pszType)
221 static const WCHAR delimW[] = {
':',
':',0};
228 FIXME(
"Opening a CHM file in the context of another is not supported.\n");
260 FIXME(
"Should display search specified by HH_FTS_QUERY structure.\n");
264 memset(&nmhdr, 0,
sizeof(nmhdr));
269 return info->WinType.hwndHelp;
295 if(!
info->WinType.pszType)
304 return info->WinType.hwndHelp;
311 return info->WinType.hwndHelp;
318 FIXME(
"HH_PRETRANSLATEMESSAGE unimplemented\n");
380 *wintype =
info->WinType;
443 FIXME(
"structures not handled yet\n");
510 int len, buflen, mapid = -1;
522 while(*szCmdLine ==
'-')
544 FIXME(
"Unhandled HTML Help command line parameter! (%.*s)\n", (
int)(
space-szCmdLine), szCmdLine);
550 if (*szCmdLine ==
'\"')
551 endq =
strchr(++szCmdLine,
'\"');
554 len = endq - szCmdLine;
577 ERR(
"Failed to open HTML Help file '%s'.\n", szCmdLine);
static char * strdupWtoA(const WCHAR *str)
static DWORD const fdwReason
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
LPWSTR FindContextAlias(CHMInfo *chm, DWORD index)
LPCWSTR skip_schema(LPCWSTR url)
void MergeChmProperties(HH_WINTYPEW *src, HHInfo *info, BOOL override)
static WCHAR * strdupAtoW(const char *str)
#define DLL_PROCESS_ATTACH
#define MultiByteToWideChar
void wintype_stringsW_free(struct wintype_stringsW *stringsW)
HHInfo * CreateHelpViewer(HHInfo *info, LPCWSTR filename, HWND caller)
void wintype_stringsA_free(struct wintype_stringsA *stringsA)
void ReleaseHelpViewer(HHInfo *info)
BOOL NavigateToChm(HHInfo *info, LPCWSTR file, LPCWSTR index)
void UpdateHelpWindow(HHInfo *info)
BOOL NavigateToUrl(HHInfo *info, LPCWSTR surl)
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
UINT WINAPI GetWindowsDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
_ACRTIMP wchar_t *__cdecl wcsstr(const wchar_t *, const wchar_t *)
_ACRTIMP int __cdecl atoi(const char *)
_ACRTIMP char *__cdecl strchr(const char *, int)
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP int __cdecl strncmp(const char *, const char *, size_t)
static wchar_t * wcsdup(const wchar_t *str)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD fdwReason, LPVOID lpvReserved)
static BOOL resolve_filename(const WCHAR *env_filename, WCHAR *fullname, DWORD buflen, WCHAR **index, WCHAR **window)
static void wintypeWtoA(const HH_WINTYPEW *wdata, HH_WINTYPEA *data, struct wintype_stringsA *stringsA)
HINSTANCE hhctrl_hinstance
HWND WINAPI HtmlHelpW(HWND caller, LPCWSTR filename, UINT command, DWORD_PTR data)
HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
static const char * command_to_string(UINT command)
HWND WINAPI HtmlHelpA(HWND caller, LPCSTR filename, UINT command, DWORD_PTR data)
static void wintypeAtoW(const HH_WINTYPEA *data, HH_WINTYPEW *wdata, struct wintype_stringsW *stringsW)
int WINAPI doWinMain(HINSTANCE hInstance, LPSTR szCmdLine)
static const WCHAR helpW[]
#define HH_RESET_IT_FILTER
#define HH_SET_EXCLUSIVE_FILTER
#define HH_ENUM_CATEGORY_IT
#define HH_SET_INCLUSIVE_FILTER
#define HH_GET_LAST_ERROR
#define HH_TP_HELP_WM_HELP
#define HH_PRETRANSLATEMESSAGE
#define HH_SAFE_DISPLAY_TOPIC
#define HH_DISPLAY_TEXT_POPUP
#define HH_ENUM_INFO_TYPE
#define HH_DISPLAY_SEARCH
#define HH_SET_GLOBAL_PROPERTY
#define HH_KEYWORD_LOOKUP
#define HH_TP_HELP_CONTEXTMENU
#define HH_GET_WIN_HANDLE
static IN DWORD IN LPVOID lpvReserved
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
static IHTMLWindow2 * window
static unsigned __int64 next
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
#define INVALID_FILE_ATTRIBUTES
static HWND find_window()
#define CLASS_E_CLASSNOTAVAILABLE
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
HWND WINAPI GetDesktopWindow(void)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)