以下函數可得到主記憶體資訊:
BOOL GetStoreInformation(
LPSTORE_INFORMATION lpsi
);
參數定義:
typedef struct STORE_INFORMATION {
DWORD dwStoreSize;
DWORD dwFreeSize;
} STORE_INFORMATION, *LPSTORE_INFORMATION;
以下函數可得到儲存卡的資訊:
BOOL GetDiskFreeSpaceEx(
LPCWSTR lpDirectoryName,
PULARGE_INTEGER lpFreeBytesAvailableToCaller,
PULARGE_INTEGER lpTotalNumberOfBytes,
PULARGE_INTEGER lpTotalNumberOfFreeBytes
);
參數定義:
#if defined(MIDL_PASS)
typedef struct _ULARGE_INTEGER {
#else // MIDL_PASS
typedef union _ULARGE_INTEGER {
struct {
DWORD LowPart;
DWORD HighPart;
};
struct {
DWORD LowPart;
DWORD HighPart;
} u;
#endif //MIDL_PASS
ULONGLONG QuadPart;
} ULARGE_INTEGER;
typedef ULARGE_INTEGER *PULARGE_INTEGER;
我們試試調用GetDiskFreeSpaceEx:
ULARGE_INTEGER ulFree;
if(GetDiskFreeSpaceEx(L"Storage Card", NULL, NULL, &ulFree))
{
_int64 iSize = ulFree.QuadPart;
if(iSize < 2*1024*1024)//保留2M空間
{
MessageBox(L"儲存卡空間不足,請刪除舊的或不使用的項目以建立更多空間。", L"", MB_OK);
}
}