⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcdmsyncstore.h

📁 《Windows CE 权威指南》(作者:(美)CHRIS MUENCH
💻 H
字号:
//
//	File:
//	=====
//	PCDMSyncStore.h: Header file
//
//	Description:
//	============
//	This class Implements the IReplStore interface. Keeps an
//	array of ptrs to your folder objects.
//

#pragma once
#define PCDMSYNC_NUM_FOLDERS	1

class CBaseFolder;
class CPCDMSyncStore: public IReplStore
{
protected:
	long m_cRef;
	BOOL m_fInitialized;
	IReplNotify	*m_pNotify;
	CBaseFolder *m_pFolders[PCDMSYNC_NUM_FOLDERS];

private:
	static const LPTSTR m_pszCLSID;
	static const LPTSTR m_pszProgId;
	static const LPTSTR m_pszDesc;

public:
	static const LPTSTR GetCLSID(){ return m_pszCLSID;}
	static const LPTSTR GetProgId(){ return m_pszProgId;}
	static const LPTSTR GetDesc(){ return m_pszDesc;}

private:
	~CPCDMSyncStore();

public:
    CPCDMSyncStore();
	CBaseFolder* GetFolderByName(LPTSTR szName);

    //========= IUnknown methods ==========//

    STDMETHODIMP         QueryInterface(const IID& iid, void **ppvObject);
    STDMETHODIMP_(ULONG) AddRef(void);
    STDMETHODIMP_(ULONG) Release(void);

    //========= IReplStore methods ==========//

    STDMETHODIMP        Initialize(IReplNotify *, UINT uFlags);
    STDMETHODIMP        GetStoreInfo(PSTOREINFO pStoreInfo);
    STDMETHODIMP        ReportStatus(HREPLFLD hFolder, HREPLITEM hItem, UINT uStatus, UINT uReserved);
    STDMETHODIMP_(int)  CompareStoreIDs(LPBYTE lpbID1, UINT cbID1, LPBYTE lpbID2, UINT cbID2);

    // ============ Object related routines ===========//

    STDMETHODIMP_(int)  CompareItem(HREPLITEM hItem1, HREPLITEM hItem2);
    STDMETHODIMP_(BOOL) IsItemChanged(HREPLFLD hFolder, HREPLITEM hItem, HREPLITEM hItemComp);
    STDMETHODIMP_(BOOL) IsItemReplicated(HREPLFLD hFolder, HREPLITEM hItem);
    STDMETHODIMP_(void) UpdateItem(HREPLFLD hFolder, HREPLITEM hItemDst, HREPLITEM hItemSrc);

    // ============ Folder related routines ===========//

    STDMETHODIMP GetFolderInfo(LPSTR lpszName,  HREPLFLD *phFolder, IUnknown **ppObjHandler);
    STDMETHODIMP IsFolderChanged(HREPLFLD hFolder, BOOL *pfChanged);

    // ============ Enumeration of folder objects =======//

    STDMETHODIMP FindFirstItem(HREPLFLD hFolder,  HREPLITEM *phItem, BOOL *pfExist);
    STDMETHODIMP FindNextItem(HREPLFLD hFolder,  HREPLITEM *phItem, BOOL *pfExist);
    STDMETHODIMP FindItemClose(HREPLFLD hFolder);

    // ============ Standard management routines ===========//

    STDMETHODIMP_(UINT)     ObjectToBytes(HREPLOBJ hObject, LPBYTE lpb);
    STDMETHODIMP_(HREPLOBJ) BytesToObject(LPBYTE lpb, UINT cb);
    STDMETHODIMP_(void)     FreeObject(HREPLOBJ hObject);
    STDMETHODIMP_(BOOL)     CopyObject(HREPLOBJ hObjSrc, HREPLOBJ hObjDst);
    STDMETHODIMP            IsValidObject(HREPLFLD hFolder, HREPLITEM hObject, UINT uFlags);

    // ============ UI related routines ================//

    STDMETHODIMP ActivateDialog(UINT uDlg, HWND hWnd, HREPLFLD hFolder, IEnumReplItem *penum);
    STDMETHODIMP GetObjTypeUIData(HREPLFLD hFolder, POBJUIDATA pData);
    STDMETHODIMP GetConflictInfo(PCONFINFO pConfInfo);
    STDMETHODIMP RemoveDuplicates(LPSTR lpszObjType, UINT uFlags);
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -