home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / internet / weblibev / weblib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-10-02  |  10.7 KB  |  268 lines

  1.  
  2. ///////////////////////////////////////////////////////////////////////////////
  3. // Copyright 1995 by Potomac Software, Inc. Use of this material is subject to
  4. // the terms and conditions of the software license agreement.
  5.  
  6. #ifndef __WEBLIB_H__
  7. #define __WEBLIB_H__
  8.  
  9. #include <windows.h>
  10.  
  11. #ifdef __cplusplus 
  12. extern "C" {
  13. #endif 
  14.  
  15. ///////////////////////////////////////////////////////////////////////////////
  16. // Flags that may be passed to API functions
  17.  
  18. // Flags for ConnectBrowser
  19. #define WL_STARTBROWSER            0x1                      // start browser if not running
  20. #define WL_SENDMESSAGE          0x2                       // notify caller via SendMessage
  21. #define WL_POSTMESSAGE          0x4                        // notify caller via PostMessage
  22.  
  23. // Flags for ListWindows
  24. #define WL_FIRSTWINDOW            TRUE                    // get first window
  25. #define WL_NEXTWINDOW            FALSE                    // get next window (if any)
  26.  
  27. // Flags for GetWindowInfo, ActivateWindow and OpenURL
  28. #define WL_ACTIVEWINDOW            0xFFFFFFFF                // operate on active window
  29. #define WL_LASTACTIVEWINDOW     0xFFFFFFFF                 // activate last active window
  30. #define WL_NEWWINDOW            0x0                        // create new window for URL
  31.  
  32. // Flags for SetWindowPos
  33. #define WL_NOCHANGE                0xFFFFFFFF                // do not change x, y, width, height
  34.  
  35. // Flags for ShowWindow
  36. #define WL_MINIMIZE                0x1                        // minimize window
  37. #define WL_MAXIMIZE             0x2                        // maximize window
  38. #define WL_NORMAL               0x3                       // restore window to normal size
  39.  
  40. // Flags for OpenURL, values must conform to DDE API
  41. #define WL_NODOCUMENTCACHE        0x01                    // ignore browser's doc cache
  42. #define WL_NOIMAGECACHE            0x02                    // ignore browser's image cache
  43. #define WL_BACKGROUNDMODE        0x04                    // operate in background mode 
  44.  
  45. // Flags that may be passed instead of notification window handle
  46. #define WL_DEFAULTNOTIFY        ((HWND) -1)                // use default from SetDefaultNotify
  47. #define WL_NONOTIFY                   ((HWND) NULL)             // do not send notification message
  48.  
  49. // Flags for UnRegisterURLEcho and others
  50. #define WL_UNREGISTERALL        ((HWND) NULL)            // unregister all windows
  51.  
  52. // Flags for RegisterViewer, values must conform to DDE API
  53. #define WL_SHELLEXECUTE            0x01                    // launch viewer using ShellExecute
  54. #define WL_QUERYVIEWER            0x02                    // send event to query filename
  55. #define WL_VIEWDOCFILE            0x04                    // send event to view filename
  56.  
  57. // Flags for AddToolbarButton
  58. #define WL_BITMAPHANDLES        ((HINSTANCE) NULL)        // passing bitmaps, not resource IDs
  59.  
  60. // Flags for SetToolbarText
  61. #define WL_TOOLBARTEXT            ((UINT) (-1))            // set toolbar text, not button text
  62.  
  63. // Flags for SetToolbarFont
  64. #define WL_TOOLBARFONT            0x1                        // set font for toolbar text
  65. #define WL_BUTTONFONT            0x2                        // set font for button text
  66.  
  67. // Flags for SetToolbarTextColor
  68. #define WL_TOOLBARTEXTCOLOR        0x1                        // set color for toolbar text
  69. #define WL_BUTTONTEXTCOLOR        0x2                        // set color for button text
  70.  
  71. ///////////////////////////////////////////////////////////////////////////////
  72. // Notification events generated by API
  73.  
  74. #define WLN_BEGINPROGRESS        0x1
  75. #define WLN_SETPROGRESSRANGE     0x2
  76. #define WLN_MAKINGPROGRESS        0x3
  77. #define WLN_ENDPROGRESS            0x4
  78. #define WLN_FINISHED            0x5
  79. #define WLN_CANCELED            0x6
  80. #define WLN_URLECHO                0x7
  81. #define WLN_OPENURL                0x8
  82. #define WLN_CANCELTRX            0x9
  83. #define WLN_WINDOWCHANGE        0xa
  84. #define WLN_QUERYVIEWER            0xb
  85. #define WLN_VIEWDOCFILE            0xc 
  86. #define WLN_BUTTONCLICKED        0xd
  87. #define WLN_BROWSERSTART        0xe
  88. #define WLN_BROWSEREXIT            0xf
  89.  
  90. ///////////////////////////////////////////////////////////////////////////////
  91. // Flags for WindowChange notification event
  92.  
  93. #define WLF_MOVESIZE            0x00001
  94. #define WLF_MAXIMIZED            0x00002
  95. #define WLF_NORMALIZED            0x00004
  96. #define WLF_MINIMIZED            0x00008
  97. #define WLF_CLOSED                0x00010
  98. #define WLF_EXITING                0x10000
  99.  
  100. ///////////////////////////////////////////////////////////////////////////////
  101. // Macros for extracting parameters from notification events  
  102.  
  103. #define WLNTXN                    0
  104. #define WLNPROGSTR                1
  105. #define WLNPROGVAL                2
  106. #define WLNPROGMAX                3
  107. #define WLNWINDOW                4
  108. #define WLNURL                    5
  109. #define WLNMIME                    6
  110. #define WLNREF                    7
  111. #define WLNFLAGS                8
  112. #define WLNSAVE                    9
  113. #define WLNFORM                    10 
  114. #define WLNX                    11
  115. #define WLNY                    12
  116. #define WLNWIDTH                13
  117. #define WLNHEIGHT                14
  118. #define WLNFILE                    15
  119.  
  120. #ifndef WEBLIB_NO_INLINE
  121.  
  122. #define WLNGetTransaction(lp)            ((DWORD) WLGetNotifyParm(lp,WLNTXN))
  123. #define WLNGetProgressString(lp)        ((LPSTR) WLGetNotifyParm(lp,WLNPROGSTR))
  124. #define WLNGetProgressValue(lp)            ((DWORD) WLGetNotifyParm(lp,WLNPROGVAL))
  125. #define WLNGetProgressMaximum(lp)        ((DWORD) WLGetNotifyParm(lp,WLNPROGMAX))
  126. #define WLNGetWindow(lp)                ((DWORD) WLGetNotifyParm(lp,WLNWINDOW))
  127. #define WLNGetURL(lp)                    ((LPSTR) WLGetNotifyParm(lp,WLNURL))
  128. #define WLNGetMIMEType(lp)                ((LPSTR) WLGetNotifyParm(lp,WLNMIME))
  129. #define WLNGetReferrer(lp)                ((LPSTR) WLGetNotifyParm(lp,WLNREF))
  130. #define WLNGetFlags(lp)                    ((DWORD) WLGetNotifyParm(lp,WLNFLAGS))
  131. #define WLNGetSaveFile(lp)                ((LPSTR) WLGetNotifyParm(lp,WLNSAVE))
  132. #define WLNGetFormData(lp)                ((LPSTR) WLGetNotifyParm(lp,WLNFORM))
  133. #define WLNGetX(lp)                        ((DWORD) WLGetNotifyParm(lp,WLNX))
  134. #define WLNGetY(lp)                        ((DWORD) WLGetNotifyParm(lp,WLNY))
  135. #define WLNGetWidth(lp)                    ((DWORD) WLGetNotifyParm(lp,WLNWIDTH))
  136. #define WLNGetHeight(lp)                ((DWORD) WLGetNotifyParm(lp,WLNHEIGHT))
  137. #define WLNGetFileName(lp)                ((LPSTR) WLGetNotifyParm(lp,WLNFILE))
  138. #define WLNGetButtonID(lp)                ((UINT) lParam)
  139.  
  140. #endif
  141.  
  142. ///////////////////////////////////////////////////////////////////////////////
  143. // Pre-defined notification message, included for convenience
  144. #ifndef WEBLIB_NO_PREDEFINEDMESSAGES
  145.  
  146. #define WM_WEBLIB_NOTIFY        (WM_USER + 1000)        
  147.  
  148. #endif
  149.  
  150. /////////////////////////////////////////////////////////////////////////
  151. // Typedefs for API 
  152.  
  153. // Handles returned by ConnectBrowser, CreateToolbar and AppendFormData
  154. typedef HLOCAL     HBROWSER;
  155. typedef HLOCAL     HTOOLBAR; 
  156. typedef HGLOBAL HFORMDATA; 
  157.  
  158. ///////////////////////////////////////////////////////////////////////////////
  159. // Housekeeping functions 
  160.  
  161. BOOL WINAPI WLStartup();
  162. BOOL WINAPI WLCleanup();
  163. BOOL WINAPI WLSetDefaultNotify(HWND hwndNotify,UINT nMsg);
  164.  
  165. ///////////////////////////////////////////////////////////////////////////////
  166. // Browser API functions 
  167.  
  168. HBROWSER WINAPI WLConnectBrowser(WORD wOptions);
  169. BOOL WINAPI WLDisconnectBrowser(HBROWSER hBrowser,BOOL bExit);
  170.  
  171. BOOL WINAPI WLGetWindowInfo(HBROWSER hBrowser,
  172.     DWORD dwWindow,LPSTR lpszURL,int cbURL,LPSTR lpszTitle,int cbTitle);
  173. DWORD WINAPI WLListWindows(HBROWSER hBrowser,BOOL bFirst);
  174.  
  175. DWORD WINAPI WLActivateWindow(HBROWSER hBrowser,DWORD dwWindow);    
  176. BOOL WINAPI WLCloseWindow(HBROWSER hBrowser,DWORD dwWindow);
  177.  
  178. BOOL WINAPI WLSetWindowPos(HBROWSER hBrowser,
  179.     DWORD dwWindow,DWORD dwX,DWORD dwY,DWORD dwWidth,DWORD dwHeight);
  180. BOOL WINAPI WLShowWindow(HBROWSER hBrowser,DWORD dwWindow,UINT nShow);
  181.  
  182. DWORD WINAPI WLShowFile(HBROWSER hBrowser,
  183.     LPCSTR lpszFile,LPCSTR lpszMIMEType,DWORD dwWindow,LPCSTR lpszURL,HWND hwndNotify,UINT nMsg);
  184.     
  185. DWORD WINAPI WLOpenURL(HBROWSER hBrowser,
  186.     LPCSTR lpszURL,DWORD dwWindow,WORD wOptions,HWND hwndNotify,UINT nMsg);
  187. DWORD WINAPI WLSaveURL(HBROWSER hBrowser,
  188.     LPCSTR lpszURL,LPCSTR lpszFile,DWORD dwWindow,WORD wOptions,HWND hwndNotify,UINT nMsg);
  189.  
  190. DWORD WINAPI WLPostFormData(HBROWSER hBrowser,
  191.     LPCSTR lpszURL,DWORD dwWindow,LPCSTR lpszFormData,LPCSTR lpszMIMEType,
  192.         HWND hwndNotify,UINT nMsg);
  193. DWORD WINAPI WLSaveFormData(HBROWSER hBrowser,LPCSTR lpszURL,
  194.     LPCSTR lpszFile,DWORD dwWindow,LPCSTR lpszFormData,LPCSTR lpszMIMEType,
  195.         HWND hwndNotify,UINT nMsg);
  196.         
  197. BOOL WINAPI WLCancel(HBROWSER hBrowser,DWORD dwTransaction);
  198.     
  199. BOOL WINAPI WLRegisterProtocol(HBROWSER hBrowser,LPCSTR lpszProtocol,HWND hwndNotify,UINT nMsg);
  200. BOOL WINAPI WLUnregisterProtocol(HBROWSER hBrowser,LPCSTR lpszProtocol,HWND hwndNotify);
  201.  
  202. BOOL WINAPI WLRegisterURLEcho(HBROWSER hBrowser,HWND hwndNotify,UINT nMsg);
  203. BOOL WINAPI WLUnregisterURLEcho(HBROWSER hBrowser,HWND hwndNotify);
  204.  
  205. BOOL WINAPI WLRegisterViewer(HBROWSER hBrowser,LPCSTR lpszMIMEType,WORD wOptions,
  206.     HWND hwndNotify,UINT nMsg);
  207. BOOL WINAPI WLUnregisterViewer(HBROWSER hBrowser,LPCSTR lpszMIMEType,HWND hwndNotify);
  208.  
  209. BOOL WINAPI WLRegisterWindowChange(HBROWSER hBrowser,DWORD dwWindow,HWND hwndNotify,UINT nMsg);
  210. BOOL WINAPI WLUnregisterWindowChange(HBROWSER hBrowser,DWORD dwWindow,HWND hwndNotify);
  211.  
  212. LPCSTR WINAPI WLParseAnchor(HBROWSER hBrowser,LPCSTR lpszAbsoluteURL,LPCSTR lpszRelativeURL);
  213. DWORD WINAPI WLGetVersion(HBROWSER hBrowser,WORD wMajor,WORD wMinor);
  214.  
  215. LPCSTR WINAPI WLQueryURLFile(HBROWSER hBrowser,LPCSTR lpszFile);        // Netscape only!
  216.  
  217. BOOL WINAPI WLSetNotifyMethod(HBROWSER hBrowser,WORD wMethod);    
  218. DWORD WINAPI WLGetTransactionWindow(HBROWSER hBrowser,DWORD dwTransaction);
  219.  
  220. LRESULT WINAPI WLGetNotifyParm(LPARAM lParam,int nType);
  221. void WINAPI WLNSetFileName(LPARAM lParam,LPCSTR lpszFileName);
  222.  
  223. ///////////////////////////////////////////////////////////////////////////////
  224. // Toolbar functions
  225.  
  226. HTOOLBAR WINAPI WLCreateToolbar(LPCSTR lpszMenu,HWND hwndNotify,UINT nMsg);
  227. BOOL WINAPI WLDeleteToolbar(HTOOLBAR hToolbar);
  228.  
  229. BOOL WINAPI WLIsToolbarActive(HTOOLBAR hToolbar);
  230. BOOL WINAPI WLSetActiveToolbar(HTOOLBAR hToolbar);
  231.  
  232. BOOL WINAPI WLAddToolbarButton(HTOOLBAR hToolbar,UINT nID,int nIdx,LPCSTR lpszText,
  233.     HINSTANCE hInstance,LPCSTR lpszBitmap,LPCSTR lpszBitmapSel,LPCSTR lpszBitmapFocus,
  234.         LPCSTR lpszBitmapDisabled);
  235. BOOL WINAPI WLRemoveToolbarButton(HTOOLBAR hToolbar,UINT nID);             
  236.  
  237. BOOL WINAPI WLIsToolbarButtonVisible(HTOOLBAR hToolbar,UINT nID);
  238. BOOL WINAPI WLShowToolbarButton(HTOOLBAR hToolbar,UINT nID,BOOL bShow);
  239.  
  240. BOOL WINAPI WLEnableToolbarButton(HTOOLBAR hToolbar,UINT nID,BOOL bEnable);
  241. BOOL WINAPI WLIsToolbarButtonEnabled(HTOOLBAR hToolbar,UINT nID);
  242.  
  243. LPCSTR WINAPI WLGetToolbarText(HTOOLBAR hToolbar,UINT nID);
  244. BOOL WINAPI WLSetToolbarText(HTOOLBAR hToolbar,UINT nID,LPCSTR lpszText);
  245.  
  246. HFONT WINAPI WLGetToolbarFont(HTOOLBAR hToolbar,WORD wType);
  247. BOOL WINAPI WLSetToolbarFont(HTOOLBAR hToolbar,WORD wType,HFONT hFont);
  248.  
  249. COLORREF WINAPI WLGetToolbarBkgnd(HTOOLBAR hToolbar);
  250. BOOL WINAPI WLSetToolbarBkgnd(HTOOLBAR hToolbar,COLORREF crBackground);
  251.  
  252. COLORREF WINAPI WLGetToolbarTextColor(HTOOLBAR hToolbar,WORD wType);
  253. BOOL WINAPI WLSetToolbarTextColor(HTOOLBAR hToolbar,WORD wType,COLORREF crText);
  254.  
  255. ///////////////////////////////////////////////////////////////////////////////
  256. // Utility functions for building form data buffer for posting to URL.
  257.  
  258. HFORMDATA WINAPI WLAppendFormData(HFORMDATA hFormData,LPCSTR lpszName,LPCSTR lpszData,
  259.     UINT cbData);
  260. UINT WINAPI WLGetFormDataLength(HFORMDATA hFormData);
  261. BOOL WINAPI WLAccessFormData(HFORMDATA hFormData,LPSTR lpszRetBuf,UINT cbRetBuf);
  262.  
  263. #ifdef __cplusplus 
  264. }
  265. #endif
  266.  
  267. #endif
  268.