1 /* 2 * Help Viewer - DLL callback into WineHelp 3 * 4 * Copyright 2004 Eric Pouech 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 */ 20 21 #define WIN32_LEAN_AND_MEAN 22 23 #include <stdio.h> 24 25 #include "windows.h" 26 #include "winhelp.h" 27 28 #include "wine/debug.h" 29 30 WINE_DEFAULT_DEBUG_CHANNEL(winhelp); 31 32 static WORD CALLBACK WHD_GetFSError(void) 33 { 34 WINE_FIXME("()\n"); 35 return 0; 36 } 37 38 static HANDLE CALLBACK WHD_Open(LPSTR name, BYTE flags) 39 { 40 unsigned mode = 0; 41 42 WINE_FIXME("(%s %x)\n", debugstr_a(name), flags); 43 switch (flags) 44 { 45 case 0: mode = GENERIC_READ | GENERIC_WRITE; break; 46 case 2: mode = GENERIC_READ; break; 47 default: WINE_FIXME("Undocumented flags %x\n", flags); 48 } 49 return CreateFileA(name, mode, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, 50 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); 51 } 52 53 static WORD CALLBACK WHD_Close(HANDLE fs) 54 { 55 WINE_FIXME("(%p)\n", fs); 56 CloseHandle(fs); 57 return 0; 58 } 59 60 static HANDLE CALLBACK WHD_OpenBag(HANDLE fs, LPSTR name, BYTE flags) 61 { 62 WINE_FIXME("(%p %s %x)\n", fs, debugstr_a(name), flags); 63 return NULL; 64 } 65 66 static HANDLE CALLBACK WHD_CloseBag(HANDLE bag) 67 { 68 WINE_FIXME("()\n"); 69 return NULL; 70 } 71 72 static LONG CALLBACK WHD_ReadBag(HANDLE bag, BYTE* ptr, LONG len) 73 { 74 WINE_FIXME("()\n"); 75 return 0; 76 } 77 78 static LONG CALLBACK WHD_TellBag(HANDLE bag) 79 { 80 WINE_FIXME("()\n"); 81 return 0; 82 } 83 84 static LONG CALLBACK WHD_SeekBag(HANDLE bag, LONG offset, WORD whence) 85 { 86 WINE_FIXME("()\n"); 87 return 0; 88 } 89 90 static BOOL CALLBACK WHD_IsEofBag(HANDLE bag) 91 { 92 WINE_FIXME("()\n"); 93 return FALSE; 94 } 95 96 static LONG CALLBACK WHD_SizeBag(HANDLE bag) 97 { 98 WINE_FIXME("()\n"); 99 return 0; 100 } 101 102 static BOOL CALLBACK WHD_Access(HANDLE fs, LPSTR name, BYTE flags) 103 { 104 WINE_FIXME("()\n"); 105 return FALSE; 106 } 107 108 static WORD CALLBACK WHD_LLInfoFromBag(HANDLE bag, WORD opt, LPWORD p1, LPLONG p2, LPLONG p3) 109 { 110 WINE_FIXME("()\n"); 111 return 0; 112 } 113 114 static WORD CALLBACK WHD_LLInfoFromFile(HANDLE fs, LPSTR name, WORD opt, LPWORD p1, LPLONG p2, LPLONG p3) 115 { 116 WINE_FIXME("()\n"); 117 return 0; 118 } 119 120 static void CALLBACK WHD_Error(int err) 121 { 122 WINE_FIXME("()\n"); 123 } 124 125 static void CALLBACK WHD_ErrorString(LPSTR err) 126 { 127 WINE_FIXME("()\n"); 128 } 129 130 static ULONG_PTR CALLBACK WHD_GetInfo(WORD what, HWND hnd) 131 { 132 ULONG_PTR ret = 0; 133 134 WINE_TRACE("(%x %p)\n", what, hnd); 135 switch (what) 136 { 137 case 0: break; 138 case 1: /* instance */ ret = (ULONG_PTR)Globals.hInstance; break; 139 case 3: /* current window */ ret = (ULONG_PTR)Globals.active_win->hMainWnd; break; 140 case 2: /* main window */ 141 case 4: /* handle to opened file */ 142 case 5: /* foreground color */ 143 case 6: /* background color */ 144 case 7: /* topic number */ 145 case 8: /* current opened file name */ 146 WINE_FIXME("NIY %u\n", what); 147 break; 148 default: 149 WINE_FIXME("Undocumented %u\n", what); 150 break; 151 } 152 return ret; 153 } 154 155 static LONG CALLBACK WHD_API(LPSTR x, WORD xx, DWORD xxx) 156 { 157 WINE_FIXME("()\n"); 158 return 0; 159 } 160 161 const struct winhelp_callbacks Callbacks = 162 { 163 WHD_GetFSError, 164 WHD_Open, 165 WHD_Close, 166 WHD_OpenBag, 167 WHD_CloseBag, 168 WHD_ReadBag, 169 WHD_TellBag, 170 WHD_SeekBag, 171 WHD_IsEofBag, 172 WHD_SizeBag, 173 WHD_Access, 174 WHD_LLInfoFromBag, 175 WHD_LLInfoFromFile, 176 WHD_Error, 177 WHD_ErrorString, 178 WHD_GetInfo, 179 WHD_API 180 }; 181