home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / wpspi.h < prev    next >
C/C++ Source or Header  |  1998-04-25  |  8KB  |  318 lines

  1. /*****************************************************************/
  2. /**               Microsoft Windows 4.00                        **/
  3. /**           Copyright (C) Microsoft Corp., 1995-1996          **/
  4. /*****************************************************************/
  5.  
  6. /* WPSPI.H -- WebPost Provider Interface definitions
  7.  *
  8.  */
  9.  
  10.  
  11. #ifndef _wpspi_h_
  12. #define _wpspi_h_
  13.  
  14. # if !defined( dllexp)
  15. #define dllexp __declspec( dllexport )
  16. # endif // dllexp
  17.  
  18. //
  19. // Assume packing on DWORD boundary
  20. //
  21. #include <pshpack4.h>
  22.  
  23. //
  24. // Insert OLE defines
  25. //
  26.  
  27. #define     _INC_OLE
  28.  
  29. #ifdef __cplusplus
  30. extern "C" {            /* Assume C declarations for C++ */
  31. #endif  /* __cplusplus */
  32.  
  33. #include <ole2.h>
  34. #include <shlobj.h>
  35.  
  36. #include <windowsx.h>
  37. #include <commctrl.h>
  38.  
  39. #ifdef __cplusplus
  40. }       /* end "C" */
  41. #endif  /* __cplusplus */
  42.  
  43. #include <wpguid.h>
  44.  
  45. // Dialog ID for Provider's pages should be between the following
  46. #define IDD_WEBPOST_PROVIDER_FIRST        9000
  47. #define IDD_WEBPOST_PROVIDER_LAST        9999
  48.  
  49. #define WPCP_HOMEPAGEURL            TEXT("HomePageURL")
  50. #define WPCP_BASEURL                TEXT("BaseURL")
  51. #define WPCP_BASEPATH                TEXT("BasePath")
  52.  
  53.  
  54. /************************************************************************
  55.  
  56. IWPProvider interface
  57.  
  58. ************************************************************************/
  59.  
  60. DECLARE_INTERFACE_(IWPProvider, IUnknown)
  61. {
  62.     // *** IUnknown methods ***
  63.     STDMETHOD(QueryInterface) (THIS_ REFIID riid, PVOID * ppvObj) PURE;
  64.     STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
  65.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  66.  
  67.     // *** Specific functions ***
  68. };
  69.  
  70.  
  71. #ifndef UNICODE
  72. #define IWPSite        IWPSiteA
  73. #else
  74. #define IWPSite        IWPSiteW
  75. #endif
  76.  
  77. /************************************************************************
  78.  
  79. IWPSite interface
  80.  
  81. ************************************************************************/
  82.  
  83. DECLARE_INTERFACE_(IWPSiteA, IUnknown)
  84. {
  85.     // *** IUnknown methods ***
  86.     STDMETHOD(QueryInterface) (THIS_ REFIID riid, PVOID * ppvObj) PURE;
  87.     STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
  88.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  89.  
  90.     // *** Specific functions ***
  91.     STDMETHOD(GetSiteInfo) (THIS_ 
  92.                             LPWPSITEINFOA lpSiteInfo, 
  93.                             LPDWORD lpcbSiteInfo) PURE;
  94.     STDMETHOD(NetworkConnect) (THIS_ 
  95.                                 LPCSTR lpszUserName, 
  96.                                 LPCSTR lpszPassword) PURE;
  97.     STDMETHOD(NetworkDisconnect) (THIS_ ) PURE;
  98.     STDMETHOD(ServerLogin) (THIS_ 
  99.                             LPCSTR lpszUserName, 
  100.                             LPCSTR lpszPassword) PURE;
  101.     STDMETHOD(ServerLogout) (THIS_ ) PURE;
  102.     STDMETHOD(PostFiles) (THIS_ 
  103.                             DWORD     cLocalPaths, 
  104.                             LPSTR     *lppszLocalPaths, 
  105.                             LPDWORD    lpcbURL,
  106.                             LPSTR    lpszURL,
  107.                             DWORD     dwFlag) PURE;
  108.     STDMETHOD(DeleteFile) (THIS_
  109.                             LPCSTR    lpszFile) PURE;
  110.     STDMETHOD(FindFirstFile) (THIS_
  111.                                 LPCSTR lpszSearchFile,
  112.                                 LPWIN32_FIND_DATAA lpFindFileData,
  113.                                 LPHANDLE lpSearchHandle) PURE;
  114.     STDMETHOD(FindNextFile) (THIS_
  115.                                 HANDLE hSearchHandle,
  116.                                 LPWIN32_FIND_DATAA lpFindFileData) PURE;
  117.     STDMETHOD(FindClose) (THIS_
  118.                             HANDLE hSearchHandle) PURE;    
  119.     STDMETHOD(Commit) (THIS_ ) PURE;
  120.     STDMETHOD(GetParam) (THIS_ 
  121.                             LPCSTR     lpszParameter,
  122.                             LPDWORD    lpcchValue,
  123.                             LPSTR    lpszValue) PURE;
  124.     STDMETHOD(SetParam) (THIS_ 
  125.                             LPCSTR    lpszParameter,
  126.                             LPCSTR    lpszValue) PURE;
  127.     STDMETHOD(GetError) (THIS_ 
  128.                             LPDWORD    lpdwErrorType,
  129.                             LPDWORD    lpdwErrorCode,
  130.                             LPDWORD    lpcbError,
  131.                             LPSTR    lpszError) PURE;
  132.     STDMETHOD(AddWizardPages) (THIS_ 
  133.                                 LPVOID lpv,
  134.                                 LPFNADDPROPSHEETPAGE lpfnAdd, 
  135.                                 LPARAM lParam) PURE;
  136. };
  137.  
  138.  
  139. DECLARE_INTERFACE_(IWPSiteW, IUnknown)
  140. {
  141.     // *** IUnknown methods ***
  142.     STDMETHOD(QueryInterface) (THIS_ REFIID riid, PVOID * ppvObj) PURE;
  143.     STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
  144.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  145.  
  146.     // *** Specific functions ***
  147.     STDMETHOD(GetSiteInfo) (THIS_ 
  148.                             LPWPSITEINFOW lpSiteInfo, 
  149.                             LPDWORD lpcbSiteInfo) PURE;
  150.     STDMETHOD(NetworkConnect) (THIS_ 
  151.                                 LPCWSTR lpszUserName, 
  152.                                 LPCWSTR lpszPassword) PURE;
  153.     STDMETHOD(NetworkDisconnect) (THIS_ ) PURE;
  154.     STDMETHOD(ServerLogin) (THIS_ 
  155.                             LPCWSTR lpszUserName, 
  156.                             LPCWSTR lpszPassword) PURE;
  157.     STDMETHOD(ServerLogout) (THIS_ ) PURE;
  158.     STDMETHOD(PostFiles) (THIS_ 
  159.                             DWORD     cLocalPaths, 
  160.                             LPWSTR     *lppszLocalPaths, 
  161.                             LPDWORD    lpcbURL,
  162.                             LPWSTR    lpszURL,
  163.                             DWORD     dwFlag) PURE;
  164.     STDMETHOD(DeleteFile) (THIS_
  165.                             LPCWSTR    lpszFile) PURE;
  166.     STDMETHOD(FindFirstFile) (THIS_
  167.                                 LPCWSTR lpszSearchFile,
  168.                                 LPWIN32_FIND_DATAW lpFindFileData,
  169.                                 LPHANDLE lpSearchHandle) PURE;
  170.     STDMETHOD(FindNextFile) (THIS_
  171.                                 HANDLE hSearchHandle,
  172.                                 LPWIN32_FIND_DATAW lpFindFileData) PURE;
  173.     STDMETHOD(FindClose) (THIS_
  174.                             HANDLE hSearchHandle) PURE;    
  175.     STDMETHOD(Commit) (THIS_ ) PURE;
  176.     STDMETHOD(GetParam) (THIS_ 
  177.                             LPCWSTR     lpszParameter,
  178.                             LPDWORD    lpcchValue,
  179.                             LPWSTR    lpszValue) PURE;
  180.     STDMETHOD(SetParam) (THIS_ 
  181.                             LPCWSTR    lpszParameter,
  182.                             LPCWSTR    lpszValue) PURE;
  183.     STDMETHOD(GetError) (THIS_ 
  184.                             LPDWORD    lpdwErrorType,
  185.                             LPDWORD    lpdwErrorCode,
  186.                             LPDWORD    lpcbError,
  187.                             LPWSTR    lpszError) PURE;
  188.     STDMETHOD(AddWizardPages) (THIS_ 
  189.                                 LPVOID lpv,
  190.                                 LPFNADDPROPSHEETPAGE lpfnAdd, 
  191.                                 LPARAM lParam) PURE;
  192. };
  193.  
  194.  
  195. /************************************************************************
  196.  
  197. Global APIs
  198.  
  199. ************************************************************************/
  200.  
  201. #ifndef UNICODE
  202. #define     WPPBINDTOSITE_EP_NAME    "WppBindToSiteA"
  203. #define     WPPLISTSITES_EP_NAME    "WppListSitesA"
  204. #define     WPPDELETESITE_EP_NAME    "WppDeleteSiteA"
  205. #define        WppBindToSite            WppBindToSiteA
  206. #define        WppListSites            WppListSitesA
  207. #define     WppDeleteSite            WppDeleteSiteA
  208. #define        PFN_WPPBINDTOSITE        PFN_WPPBINDTOSITEA
  209. #define        PFN_WPPLISTSITES        PFN_WPPLISTSITESA
  210. #define        PFN_WPPDELETESITE        PFN_WPPDELETESITEA
  211.  
  212. #else
  213. #define     WPPBINDTOSITE_EP_NAME    "WppBindToSiteW"
  214. #define     WPPLISTSITES_EP_NAME    "WppListSitesW"
  215. #define     WPPDELETESITE_EP_NAME    "WppDeleteSiteW"
  216. #define        WppBindToSite            WppBindToSiteW
  217. #define        WppListSites            WppListSitesW
  218. #define     WppDeleteSite            WppDeleteSiteW
  219. #define        PFN_WPPBINDTOSITE        PFN_WPPBINDTOSITEW
  220. #define        PFN_WPPLISTSITES        PFN_WPPLISTSITESW
  221. #define        PFN_WPPDELETESITE        PFN_WPPDELETESITEW
  222. #endif
  223.  
  224. // dwFlag for WppBindToSite
  225. #define WPF_FORCE_BIND        0x00000100
  226.  
  227. dllexp
  228. HRESULT
  229. WINAPI
  230. WppBindToSiteA(
  231.     HWND    hwnd,
  232.     LPCSTR    lpszSiteName,
  233.     LPCSTR    lpszURL,
  234.     REFIID    riid,
  235.     DWORD    dwFlag,
  236.     DWORD    dwReserved,
  237.     PVOID     *ppvObj);
  238.  
  239. typedef
  240.    HRESULT (WINAPI *PFN_WPPBINDTOSITEA)(HWND    hwnd,
  241.                                         LPCSTR lpszSiteName,
  242.                                         LPCSTR    lpszURL,
  243.                                         REFIID     riid,
  244.                                         DWORD    dwFlag,
  245.                                         DWORD    dwReserved,
  246.                                         PVOID     *ppvOut);
  247.  
  248. dllexp
  249. HRESULT
  250. WINAPI
  251. WppListSitesA(
  252.     LPDWORD            lpcbSites,
  253.     LPWPSITEINFOA    lpSiteInfo,
  254.     LPDWORD            lpcSites);
  255.  
  256. typedef
  257.    HRESULT (WINAPI *PFN_WPPLISTSITESA)(LPDWORD            lpcbSites,
  258.                                         LPWPSITEINFOA    lpSiteInfo,
  259.                                         LPDWORD            lpcSites);
  260.                                         
  261. dllexp
  262. HRESULT
  263. WINAPI
  264. WppDeleteSiteA(
  265.     LPCSTR    lpszSiteName);
  266.  
  267. typedef
  268.    HRESULT (WINAPI *PFN_WPPDELETESITEA)(LPCSTR    lpszSiteName);
  269.  
  270.  
  271. dllexp
  272. HRESULT
  273. WINAPI
  274. WppBindToSiteW(
  275.     HWND    hwnd,
  276.     LPCWSTR    lpszSiteName,
  277.     LPCWSTR    lpszURL,
  278.     REFIID    riid,
  279.     DWORD    dwFlag,
  280.     DWORD    dwReserved,
  281.     PVOID     *ppvObj);
  282.  
  283. typedef
  284.    HRESULT (WINAPI *PFN_WPPBINDTOSITEW)(HWND    hwnd,
  285.                                         LPCWSTR lpszSiteName,
  286.                                         LPCWSTR    lpszURL,
  287.                                         REFIID     riid,
  288.                                         DWORD    dwFlag,
  289.                                         DWORD    dwReserved,
  290.                                         PVOID     *ppvOut);
  291.  
  292. dllexp
  293. HRESULT
  294. WINAPI
  295. WppListSitesW(
  296.     LPDWORD            lpcbSites,
  297.     LPWPSITEINFOW    lpSiteInfo,
  298.     LPDWORD            lpcSites);
  299.  
  300. typedef
  301.    HRESULT (WINAPI *PFN_WPPLISTSITESW)(LPDWORD            lpcbSites,
  302.                                         LPWPSITEINFOW    lpSiteInfo,
  303.                                         LPDWORD            lpcSites);
  304.                                         
  305. dllexp
  306. HRESULT
  307. WINAPI
  308. WppDeleteSiteW(
  309.     LPCWSTR    lpszSiteName);
  310.  
  311. typedef
  312.    HRESULT (WINAPI *PFN_WPPDELETESITEW)(LPCWSTR    lpszSiteName);
  313.  
  314. #include <poppack.h>
  315.  
  316. #endif // _wpspi_h_
  317.  
  318.