/*------------------------------------------------*\
*
*Copyright (c) 1997 Microsoft Corporation
*
*Module Name:
*
*wppobj.h
*
*Abstract:
*
*Declaration of Service Provider object
*
\*------------------------------------------------*/
#ifndef __WPPOBJ_H__
#define __WPPOBJ_H__
#include "resource.h" // main symbols
#include "pages.h"
/////////////////////////////////////////////////////////////////////////////
// wpprov
class CWPProvider :
public CComDualImpl<IWPProvider, &IID_IWPProvider, &LIBID_CWPProviderLib>,
public ISupportErrorInfo,
public CComObjectRoot,
public CComCoClass<CWPProvider,&CLSID_CWPProvider>
{
public:
CWPProvider() {}
BEGIN_COM_MAP(CWPProvider)
COM_INTERFACE_ENTRY(IWPSiteW)
COM_INTERFACE_ENTRY(IWPProvider)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
//DECLARE_NOT_AGGREGATABLE(CWPProvider)
// Remove the comment from the line above if you don't want your object to
// support aggregation. The default is to support it
DECLARE_REGISTRY(CWPProvider, _T("WebPost.CWPProvider.1"), _T("WebPost.CWPProvider"), IDS_WPPROVIDER_DESC, THREADFLAGS_BOTH)
// ISupportsErrorInfo
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
// IWPProvider
public:
HRESULT STDMETHODCALLTYPE AddWizardPages(
/* [in] */ LONG __RPC_FAR *lpv,
/* [in] */ LONG __RPC_FAR *lpfnAdd,
/* [out][in] */ LONG __RPC_FAR *plParam);
HRESULT STDMETHODCALLTYPE Commit( void);
HRESULT STDMETHODCALLTYPE DeleteFile(
/* [string][in] */ LPCWSTR lpszFile);
HRESULT STDMETHODCALLTYPE FindClose(
/* [in] */ LONG hSearchHandle);
HRESULT STDMETHODCALLTYPE FindFirstFile(
/* [string][in] */ LPCWSTR lpszSearchFile,
/* [out] */ LPWIN32_FIND_DATAW lpFindFileData,
/* [out] */ LONG __RPC_FAR *lpSearchHandle);
HRESULT STDMETHODCALLTYPE FindNextFile(
/* [in] */ LONG hSearchHandle,
/* [out] */ LPWIN32_FIND_DATAW lpFindFileData);
HRESULT STDMETHODCALLTYPE GetError(
/* [out] */ LONG __RPC_FAR *lpdwErrorType,
/* [out] */ LONG __RPC_FAR *lpdwErrorCode,
/* [out][in] */ LONG __RPC_FAR *lpcbError,
/* [string][out] */ LPWSTR lpszError);
HRESULT STDMETHODCALLTYPE GetParam(
/* [string][in] */ LPCWSTR lpszParameter,
/* [out][in] */ LONG __RPC_FAR *lpcbValue,
/* [string][out] */ LPWSTR lpszValue);
HRESULT STDMETHODCALLTYPE GetSiteInfo(
/* [out] */ LPWPSITEINFOW lpbSite,
/* [out][in] */ LONG __RPC_FAR *lpcbSite);
HRESULT STDMETHODCALLTYPE NetworkConnect(
/* [string][in] */ LPCWSTR lpszUserName,
/* [string][in] */ LPCWSTR lpszPassword);
HRESULT STDMETHODCALLTYPE NetworkDisconnect( void);
HRESULT STDMETHODCALLTYPE PostFiles(
/* [in] */ LONG cLocalPaths,
/* [string][in] */ LPWSTR __RPC_FAR *lppszLocalPaths,
/* [out][in] */ LONG __RPC_FAR *lpcbURL,
/* [string][out][in] */ LPWSTR lpszURL,
/* [in] */ LONG fdwFlags);
HRESULT STDMETHODCALLTYPE ServerLogin(
/* [string][in] */ LPCWSTR lpszUserName,
/* [string][in] */ LPCWSTR lpszPassword);
HRESULT STDMETHODCALLTYPE ServerLogout( void);
HRESULT STDMETHODCALLTYPE SetParam(
/* [string][in] */ LPCWSTR lpszParameter,
/* [string][in] */ LPCWSTR lpszValue);
HRESULT STDMETHODCALLTYPE SetProgressUpdateProc(
/* [in] */ LONG __RPC_FAR *lpfnProgressUpdateProc);
//
//Property page related variables
//
PROPSHEETPAGEm_Pages[NUM_PAGES];
HPROPSHEETPAGEm_hPages[NUM_PAGES];
DWORDm_dwPageBeforeMe;
DWORDm_dwPageAfterMe;
//
//Non-IWPSite public methods
//
HRESULT Init(LPCWSTR wsSiteName, LPCWSTR wsDestURL);
HRESULT DoTestPost();
private:
//
//Object state
//
PFNPROGRESSUPDATEPROCm_pfnProgressUpdateProc;
};
#endif//__WPPOBJ_H__