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

📄 storagecard.cpp

📁 WinCE开发技巧与实例的配套源码(chapter2)
💻 CPP
字号:
// StorageCard.cpp: implementation of the CStorageCard class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "StorageCard.h"

#include "Projects.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

/*	给EnumProjectsFilesEx的回调函数
 *	用于得到storagecard上的路径
 */
BOOL CALLBACK CStorageCard::EnumProjectsFilesExCallback(PAstruct* pPA, LPARAM lParam)
{
	CString str(pPA->m_szPathname);
	if (!s_listStorageName.IsEmpty())
	{
		if (s_listStorageName.GetTail().Compare(str.Left(str.Find(L"\\", 1))) != 0)
			s_listStorageName.AddTail(str.Left(str.Find(L"\\", 1)));	
	}	
	else
		s_listStorageName.AddTail(str.Left(str.Find(L"\\", 1)));	
	
	return TRUE;
}

/*	查询pda上有多少块存储卡
 *	结果存放在s_listStorageName中
 */
CStorageCard::CStorageCard()
{
	s_listStorageName.RemoveAll();

	HANDLE hFlashCard = NULL;               
	WIN32_FIND_DATA *lpwfdFlashCard = new WIN32_FIND_DATA[10];
	BOOL bContinue = TRUE;
	int i = 0;
	hFlashCard = FindFirstFlashCard (&lpwfdFlashCard[i]);	
	if (hFlashCard == INVALID_HANDLE_VALUE)
	{
		delete[] lpwfdFlashCard;		
		return;
	}		
	while (bContinue) 
	{
		bContinue = FindNextFlashCard (hFlashCard, &lpwfdFlashCard[++i]);		
	}	
	FindClose (hFlashCard);                    
	for (int nindex = 0; nindex < i; ++nindex)
	{
		EnumProjectsFilesEx(
			EnumProjectsFilesExCallback,
			lpwfdFlashCard[nindex].dwOID,
			PRJ_ENUM_FLASH,
			NULL,
			L"*.*",
			0);
	}
	delete[] lpwfdFlashCard;

}

CStorageCard::~CStorageCard()
{

}

/*	返回存储卡的数量
 *	
 *	返回值:
 *	int				存储卡的数量
 */
int CStorageCard::GetCount()
{
	return s_listStorageName.GetCount();
// 	return 0;
}

⌨️ 快捷键说明

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