QUERYCHANGESFUNC
這是所用的回呼函式SccQueryChanges 函式操作列舉檔案名稱的集合,並判斷每個檔案的狀態。
SccQueryChanges函式會提供一份檔案和變數的指標, QUERYCHANGESFUNC回呼。 原始檔控制外掛程式全面列舉指定的清單,並提供每個清單中的檔案 (透過這個回呼中) 的狀態。
Signature
typedef BOOL (*QUERYCHANGESFUNC)(
LPVOID pvCallerData,
QUERYCHANGESDATA * pChangesData
);
參數
pvCallerData
[in]pvCallerData參數傳遞至呼叫端 (IDE) SccQueryChanges 函式。 原始檔控制外掛程式,應該先內容有關的任何假設,這個值。pChangesData
[in]指標QUERYCHANGESDATA結構描述檔案所做的變更。
傳回值
IDE 會傳回適當的錯誤程式碼:
值 |
描述 |
---|---|
SCC_OK |
繼續進行處理。 |
SCC_I_OPERATIONCANCELED |
停止處理。 |
SCC_E_xxx |
任何適當的 SCC 錯誤應該停止處理。 |
QUERYCHANGESDATA 結構
傳入了每個檔案的結構看起來會如下所示:
struct QUERYCHANGESDATA_A
{
DWORD dwSize;
LPCSTR lpFileName;
DWORD dwChangeType;
LPCSTR lpLatestName;
};
typedef struct QUERYCHANGESDATA_A QUERYCHANGESDATA;
struct QUERYCHANGESDATA_W
{
DWORD dwSize;
LPCWSTR lpFileName;
DWORD dwChangeType;
LPCWSTR lpLatestName;
};
dwSize
此結構 (以位元組為單位) 的大小。lpFileName
這個項目原來的檔名。dwChangeType
指出檔案狀態的程式碼:程式碼
描述
SCC_CHANGE_UNKNOWN
不知道有什麼已經變更。
SCC_CHANGE_UNCHANGED
這個檔案的名稱並無任何變更。
SCC_CHANGE_DIFFERENT
檔案具有不同的識別,但資料庫中有相同的名稱。
SCC_CHANGE_NONEXISTENT
在資料庫中或本機檔案不存在。
SCC_CHANGE_DATABASE_DELETED
在資料庫中刪除的檔案。
SCC_CHANGE_LOCAL_DELETED
在本機刪除的檔案,但該檔案仍存在於資料庫中。 如果無法判斷,會傳回SCC_CHANGE_DATABASE_ADDED。
SCC_CHANGE_DATABASE_ADDED
檔案加入至資料庫,但不在本機上。
SCC_CHANGE_LOCAL_ADDED
檔案不存在於資料庫,而且是新的本機檔案。
SCC_CHANGE_RENAMED_TO
檔案重新命名或移動與在資料庫中lpLatestName。
SCC_CHANGE_RENAMED_FROM
檔案重新命名或移動從資料庫中lpLatestName。 如果這是追蹤的成本太高,傳回不同的標幟,例如SCC_CHANGE_DATABASE_ADDED。
lpLatestName
這個項目目前的檔案名稱。