|
// *********************************************************
// リストボックスにレジストリのキーの一覧を追加
// 戻り値 : 無し
// *********************************************************
void LboxEnumRegKey( HWND hList, int nIndex, HKEY hKey, DWORD nOption )
{
//LONG RegEnumKeyEx(
//HKEY hKey, キーのハンドル
//DWORD dwIndex, サブキーのインデックス
//LPTSTR lpName, サブキー名を格納するバッファへのポインタ
//LPDWORD lpcbName, バッファのサイズを入れた変数へのポインタ
//LPDWORD lpReserved, 予約
//LPTSTR lpClass, クラス名を格納するバッファへのポインタ
//LPDWORD lpcbClass, バッファのサイズを入れた変数へのポインタ
//PFILETIME lpftLastWriteTime 最終書き込み時間を格納する構造体へのポインタ
//);
LONG nRet;
char *szBuffer;
DWORD i;
DWORD nSize;
DWORD nBufferSize;
FILETIME ft;
int nInsert;
nSize = 1024;
szBuffer = new char[nSize];
i = 0;
nInsert = nIndex;
while( 1 ) {
nBufferSize = nSize;
nRet = RegEnumKeyEx(
hKey,
i,
szBuffer,
&nBufferSize,
NULL,
NULL,
NULL,
&ft
);
if ( nRet != ERROR_SUCCESS ) {
break;
}
if ( nOption & LBOX_ENUMREGKEY_TIME ) {
SYSTEMTIME st;
lstrcat( szBuffer, "\t" );
FileTimeToSystemTime( &ft, &st );
wsprintf(
szBuffer+lstrlen(szBuffer),
"%02d-%02d-%02d %02d:%02d:%02d",
st.wYear,
st.wMonth,
st.wDay,
st.wHour,
st.wMinute,
st.wSecond
);
}
LboxListInsert( hList, nInsert, szBuffer );
nInsert++;
i++;
}
delete [] szBuffer;
}
| |