|
|
#ifndef _INC_IMPORT_H
#define _INC_IMPORT_H
interface IMAPISession; #include "resource.h"
#include "impdlg.h"
extern HINSTANCE g_hInstImp;
HRESULT ExchInit(void); void ExchDeinit(void); HRESULT MapiLogon(HWND hwnd, IMAPISession **ppmapi);
LPMAPICONTAINER OpenDefaultStoreContainer(HWND hwnd, IMAPISession *pmapi); LPSPropValue PvalFind(LPSRow prw, ULONG ulPropTag); void FreeSRowSet(LPSRowSet prws);
void ImpErrorMessage(HWND hwnd, LPTSTR szTitle, LPTSTR szError, HRESULT hrDetail); int ImpMessageBox(HWND hwndOwner, LPTSTR szTitle, LPTSTR sz1, LPTSTR sz2, UINT fuStyle);
void InitListViewImages(HWND hwnd); void FillFolderListview(HWND hwnd, IMPFOLDERNODE *plist, DWORD_PTR dwReserved);
class CImpProgress { private: ULONG m_cRef; ULONG m_cMax; ULONG m_cCur; ULONG m_cPerCur; HWND m_hwndProgress; HWND m_hwndDlg; HWND m_hwndOwner; BOOL m_fCanCancel; BOOL m_fHasCancel;
public: CImpProgress (); ~CImpProgress ();
ULONG AddRef (); ULONG Release ();
VOID SetMsg(LPTSTR lpszMsg, int id); VOID SetTitle(LPTSTR lpszTitle); VOID Show (DWORD dwDelaySeconds=0); VOID Hide (VOID); VOID Close (VOID); VOID AdjustMax(ULONG cNewMax); VOID Reset(VOID); HRESULT HrUpdate (ULONG cInc); static INT_PTR CALLBACK ProgressDlgProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
VOID Init (HWND hwndParent, BOOL fCanCancel); };
#define WM_POSTSETFOCUS (WM_USER + 1)
#define WM_ENABLENEXT (WM_USER + 2)
typedef struct tagIMPWIZINFO IMPWIZINFO;
INT_PTR CALLBACK GenDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
BOOL CALLBACK MigrateInitProc(IMPWIZINFO *,HWND,BOOL); BOOL CALLBACK MigrateOKProc(IMPWIZINFO *,HWND,BOOL,UINT *,BOOL *);
BOOL CALLBACK MigModeInitProc(IMPWIZINFO *,HWND,BOOL); BOOL CALLBACK MigModeOKProc(IMPWIZINFO *,HWND,BOOL,UINT *,BOOL *);
BOOL CALLBACK MigIncInitProc(IMPWIZINFO *,HWND,BOOL); BOOL CALLBACK MigIncOKProc(IMPWIZINFO *,HWND,BOOL,UINT *,BOOL *);
BOOL CALLBACK ClientInitProc(IMPWIZINFO *,HWND,BOOL); BOOL CALLBACK ClientOKProc(IMPWIZINFO *,HWND,BOOL,UINT *,BOOL *);
BOOL CALLBACK LocationInitProc(IMPWIZINFO *,HWND,BOOL); BOOL CALLBACK LocationOKProc(IMPWIZINFO *,HWND,BOOL,UINT *,BOOL *); BOOL CALLBACK LocationCmdProc(IMPWIZINFO *,HWND,WPARAM,LPARAM);
BOOL CALLBACK FolderInitProc(IMPWIZINFO *,HWND,BOOL); BOOL CALLBACK FolderOKProc(IMPWIZINFO *,HWND,BOOL,UINT *,BOOL *);
BOOL CALLBACK AddressOKProc(IMPWIZINFO *,HWND,BOOL,UINT *,BOOL *);
BOOL CALLBACK CongratInitProc(IMPWIZINFO *,HWND,BOOL); BOOL CALLBACK CongratOKProc(IMPWIZINFO *,HWND,BOOL,UINT *,BOOL *);
typedef BOOL (CALLBACK* INITPROC)(IMPWIZINFO *,HWND,BOOL); typedef BOOL (CALLBACK* OKPROC)(IMPWIZINFO *,HWND,BOOL,UINT *,BOOL *); typedef BOOL (CALLBACK* CMDPROC)(IMPWIZINFO *,HWND,WPARAM,LPARAM);
typedef struct tagPAGEINFO { UINT uDlgID; UINT uHdrID; // handler procedures for each page-- any of these can be
// NULL in which case the default behavior is used
INITPROC InitProc; OKPROC OKProc; CMDPROC CmdProc; } PAGEINFO;
#define NUM_WIZARD_PAGES 8
typedef struct tagMIGRATEINFO { CLSID clsid; UINT idDisplay; char *szfnImport; } MIGRATEINFO;
#define PAGE_LOCATION 0x0001
#define PAGE_FOLDERS 0x0002
#define PAGE_MODE 0x0004
#define PAGE_ALL 0x0007
typedef struct tagIMPWIZINFO { IMailImporter *pImporter;
BOOL dwReload;
BOOL fMigrate; BOOL fMessages; BOOL fAddresses; MIGRATEINFO *pMigrate; UINT cMigrate; UINT iMigrate;
CLSID *pClsid; UINT cClsid; UINT iClsid;
BOOL fLocation; char szDir[MAX_PATH]; IMPFOLDERNODE *pList; char szClient[CCHMAX_STRINGRES];
UINT cPagesCompleted; UINT idCurrentPage; UINT rgHistory[NUM_WIZARD_PAGES];
IMailImport *pImport; } IMPWIZINFO;
typedef struct tagINITWIZINFO { const PAGEINFO *pPageInfo; IMPWIZINFO *pWizInfo; } INITWIZINFO;
#endif // _INC_IMPORT_H
|