EnumDesktops デスクトップの列挙

Cの宣言:

BOOL EnumDesktops(
	HWINSTA hWindowStation,
	DESKTOPENUMPROC EnumProc,
	LPARAM lParam);

説明:

hWindowStationで指定したウィンドウステーションの全てのデスクトップを列挙する。列挙は、各々のデスクトップに対してコールバック関数EnumProcを呼び出すことにより行われる。

この関数はNT3.51以上で使用可能。

引数の意味は、以下の通り。
hWindowStation デスクトップの列挙を行うウィンドウステーションのハンドル。
EnumProc 列挙を行う際に各々のデスクトップに対してシステムが呼び出すコールバック関数。
lParam EnumProcで指定したコールバック関数に渡す値。

戻り値は、関数の実行に成功したかいなかを表す真偽値。

Cのサンプル:

現在のプロセスに関連付けられているウィンドウステーション中の全てのデスクトップを列挙し、その名前を表示する。
/* デスクトップの列挙用コールバック関数 */
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);
}


(original text:1998/12/25 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。