QUERYCHANGESFUNC
This is a callback function used by the SccQueryChanges operation to enumerate a collection of file names and determine each file's status.
The SccQueryChanges
function is given a list of files and a pointer to the QUERYCHANGESFUNC
callback. The source control plug-in enumerates over the given list and provides status (via this callback) for each file in the list.
Signature
typedef BOOL (*QUERYCHANGESFUNC)(
LPVOID pvCallerData,
QUERYCHANGESDATA * pChangesData
);
Parameters
pvCallerData
[in] The pvCallerData
parameter passed by the caller (the IDE) to SccQueryChanges. The source control plug-in should make no assumptions about the contents of this value.
pChangesData
[in] Pointer to a QUERYCHANGESDATA Structure structure describing the changes to a file.
Return value
The IDE returns an appropriate error code:
Value | Description |
---|---|
SCC_OK | Continue processing. |
SCC_I_OPERATIONCANCELED | Stop processing. |
SCC_E_xxx | Any appropriate SCC error should stop processing. |
QUERYCHANGESDATA Structure
The structure passed in for each file looks like the following:
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 Size of this structure (in bytes).
lpFileName The original file name for this item.
dwChangeType Code indicating status of the file:
Code | Description |
---|---|
SCC_CHANGE_UNKNOWN |
Cannot tell what has changed. |
SCC_CHANGE_UNCHANGED |
No name changes for this file. |
SCC_CHANGE_DIFFERENT |
File with a different identity, but the same name exists in the database. |
SCC_CHANGE_NONEXISTENT |
File does not exist either in the database or locally. |
SCC_CHANGE_DATABASE_DELETED |
File deleted in the database. |
SCC_CHANGE_LOCAL_DELETED |
File deleted locally but the file still exists in the database. If this cannot be determined, return SCC_CHANGE_DATABASE_ADDED . |
SCC_CHANGE_DATABASE_ADDED |
File added to the database but does not exist locally. |
SCC_CHANGE_LOCAL_ADDED |
File does not exist in database and is a new local file. |
SCC_CHANGE_RENAMED_TO |
File renamed or moved in the database as lpLatestName . |
SCC_CHANGE_RENAMED_FROM |
File renamed or moved in the database from lpLatestName ; if this is too expensive to track, return a different flag, such as SCC_CHANGE_DATABASE_ADDED . |
lpLatestName The current file name for this item.