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

📄 devpcdmsync.cpp

📁 是一本关于
💻 CPP
字号:
//
//	File:
//	=====
//	DevPCDMSync.cpp: Implementation file
//
//	Description:
//	============
//	This class represents the store object for your provider.
//	This file also contains all the required dll exports.
//

#include "DevPCDMSync.h"

#include "DevPCDMSyncFldr.h"


CPCDMSyncStore _Store;	// one & only global Store object

//
// ========================== MEMBERS ================================
//

CPCDMSyncStore::CPCDMSyncStore()
{
	for(int i = 0; i < PCDMSYNC_NUM_FOLDERS; i++)
		m_pFolders[i] = NULL;
	//
	//	TODO: If you want to add new folders to the store,
	//	create & add them to the array here.
	//
	m_pFolders[0] = new CPCDMSyncFolder();
}

CPCDMSyncStore::~CPCDMSyncStore()
{
	//
	//	TODO: Add any clean up code here
	//
	for(int i = 0; i < PCDMSYNC_NUM_FOLDERS; i++)
	{
		delete m_pFolders[i];
		m_pFolders[i] = NULL;
	}
}

BOOL CPCDMSyncStore::InitObjType(LPWSTR lpszObjType, IReplObjHandler **ppObjHandler, UINT uPartnerBit)
{
	//
	//	Called by ActiveSync to initialize the store
	//	if lpszObjType == NULL, then we are uninitializing.
	//
    if(lpszObjType == NULL)
    {
		//
		//	Let all our folders clean-up
		//
		BOOL fRet = TRUE;
		for(int i = 0; i < PCDMSYNC_NUM_FOLDERS; i++)
		{
			if(m_pFolders[i]->UnInitialize() == FALSE)
				fRet = FALSE;
		}
		return fRet;
    }
	else
	{
		*ppObjHandler = NULL;
		//
		//	Delegate to appropriate folder
		//
		CBaseFolder *pFolder = GetFolderByName(lpszObjType);
		if(pFolder)
			return pFolder->Initialize(ppObjHandler, uPartnerBit);
		else
			return FALSE;
	}
}

BOOL CPCDMSyncStore::ObjectNotify(POBJNOTIFY pNotify)
{
	if(pNotify == NULL)
		return FALSE;

	//
	//	Delegate to appropriate folder
	//
	CBaseFolder *pFolder = GetFolderByName(pNotify->szObjType);
	if(pFolder)
		return pFolder->ObjectNotify(pNotify);
	else
		return FALSE;
}

BOOL CPCDMSyncStore::GetObjTypeInfo(POBJTYPEINFO pInfo)
{
	if(pInfo == NULL)
		return FALSE;

	//
	//	Delegate to appropriate folder
	//
	CBaseFolder *pFolder = GetFolderByName(pInfo->szObjType);
	if(pFolder)
		return pFolder->GetObjTypeInfo(pInfo);
	else
		return FALSE;
}

BOOL CPCDMSyncStore::ReportStatus(LPWSTR lpszObjType, UINT uCode, UINT uParam)
{
	//
	//	TODO: Called to inform provider of sync events.
	//	Add code to handle these events.
	//
	switch(uCode)
    {
    case RSC_BEGIN_SYNC:
        break;
    case RSC_END_SYNC:
        break;
    }
    return TRUE;
}

CBaseFolder* CPCDMSyncStore::GetFolderByName(LPWSTR wszName)
{
	//
	//	Returns the ptr to the folder, given the name
	//	of the folder.
	//
	for(int i = 0; i < PCDMSYNC_NUM_FOLDERS; i++)
	{
		if(::wcscmp(m_pFolders[i]->GetName(), wszName) == 0)
			return m_pFolders[i];
	}
	return NULL;
}

//
// ======================== DLL EXPORTS ===========================//
//
BOOL WINAPI DllMain(HANDLE hInstDll, ULONG ulReason, LPVOID lpReserved)
{
    switch(ulReason)
    {
    case DLL_PROCESS_ATTACH:
		break;
    case DLL_PROCESS_DETACH:
        break;
    case DLL_THREAD_ATTACH:
        break;
    case DLL_THREAD_DETACH:
        break;
    }
    return TRUE;
}

EXTERN_C BOOL InitObjType(LPWSTR lpszObjType, IReplObjHandler **ppObjHandler, UINT uPartnerBit)
{
	//
	//	Delegate to our one & only store object
	//
	return _Store.InitObjType(lpszObjType, ppObjHandler, uPartnerBit);
}

EXTERN_C BOOL ObjectNotify(POBJNOTIFY pNotify)
{
	//
	//	Delegate to our one & only store object
	//
	return _Store.ObjectNotify(pNotify);
}

EXTERN_C BOOL GetObjTypeInfo(POBJTYPEINFO pInfo)
{
	//
	//	Delegate to our one & only store object
	//
	return _Store.GetObjTypeInfo(pInfo);
}

EXTERN_C BOOL ReportStatus(LPWSTR lpszObjType, UINT uCode, UINT uParam)
{
	//
	//	Delegate to our one & only store object
	//
	return _Store.ReportStatus(lpszObjType, uCode, uParam);
}

//<BOOK_ADDON Chapter=9.3.2> *****************************************************************
EXTERN_C BOOL FindObjects(PFINDOBJINFO pFindObjInfo)
{
	//
	//	Delegate to our one & only store object
	//
	return _Store.FindObjects(pFindObjInfo);
}

BOOL CPCDMSyncStore::FindObjects(PFINDOBJINFO pFindObjInfo)
{
	if(pFindObjInfo == NULL)
		return FALSE;

	//
	//	Delegate to appropriate folder
	//
	CBaseFolder *pFolder = GetFolderByName(pFindObjInfo->szObjType);
	if(pFolder)
		return pFolder->FindObjects(pFindObjInfo);
	else
		return FALSE;
}
//</BOOK_ADDON Chapter=9.3.2> *****************************************************************

⌨️ 快捷键说明

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