BOOL EnumDesktops( HWINSTA hWindowStation, DESKTOPENUMPROC EnumProc, LPARAM lParam);
この関数はNT3.51以上で使用可能。
引数の意味は、以下の通り。
| hWindowStation | デスクトップの列挙を行うウィンドウステーションのハンドル。 |
| EnumProc | 列挙を行う際に各々のデスクトップに対してシステムが呼び出すコールバック関数。 |
| lParam | EnumProcで指定したコールバック関数に渡す値。 |
戻り値は、関数の実行に成功したかいなかを表す真偽値。
/* デスクトップの列挙用コールバック関数 */
BOOL CALLBACK DispDeskFunc(LPTSTR DesktopName, LPARAM lParam)
{
char *msg;
msg = (char *)lParam;
/* 与えられたデスクトップ名をメッセージ表示用文字列に追加 */
lstrcat(msg, DesktopName);
lstrcat(msg, "\n");
return TRUE;
}
/* デスクトップを列挙 */
void DispDesktops()
{
HWINSTA hWinSta;
char msg[1000] = "";
/* 現在のプロセスと関連付けられているウィンドウステーションを取得 */
hWinSta = GetProcessWindowStation();
/* デスクトップを列挙 */
EnumDesktops(hWinSta, DispDeskFunc, (LPARAM)msg);
/* 列挙した結果の表示 */
MessageBox(NULL, msg, "DispDesktops", MB_OK);
}