• ベストアンサー

LockWindowStation & UnlockWindowStation

WindowsのAPIでUser32.dllにある関数ですが、公開されていない関数に LockWindowStationとUnlockWindowStationがあります。 検索してみたのですが、関数の存在はわかるものの 関数の仕様がわかりません。 機能・引数・戻り値と、どなたか、わかる方いらっしゃいますか? 宜しく御願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.3

> LockWindowStation Locks switching desktops. Only the logon application is allowed to call this function. デスクトップの切り替えをロックします。 この機能はログオン アプリケーションでのみ実行が許可されます。 WindowStation については、CreateWindowStation API などを参考にしてください。

参考URL:
http://msdn.microsoft.com/library/ja/jpwinui/html/_win32_CreateWindowStation.asp?frame=true
Williamtel
質問者

お礼

遅くなりました。 ありがとう御座います。

その他の回答 (2)

  • mikaemi
  • ベストアンサー率50% (33/65)
回答No.2

質問者さんは、仕様(とくに機能)を知りたいのですよね? 実際に何を目的とした関数なのか、とか。 検索エンジンで見つかるページなどにも、「全ウィンドウのフォーカスがなくなった以外に、何も起こってないように思える」、「常に true を返すだけのスタブじゃないか」だとかありますから^^

Williamtel
質問者

補足

返答(回答)ありがとうございます。 そうなんです・・ しかし、それでも、機能が理解し難い・・と それが、気持ちです。 いまいち、機能が理解できません。 例えば、LockWorkStation のように、特定のウインドウをロックして しまい、パスワードを要求するのか・・とか、 違うにしても、UnlockWindowStation があるのだから、どう言う関数なのか・・ 利用できるなら、使って・・と思ったものですから。

  • RAPTsong
  • ベストアンサー率42% (74/175)
回答No.1

本当に探しましたか? 確かに日本語では存在しないようですが、型を知りたいだけなら 別に C++ 以外の言語での説明でもいいはずです。 BOOL WINAPI LockWindowStation( HWINSTA winSta ); BOOL WINAPI UnlockWindowStation( HWINSTA winSta ); // WinXPsp2/VC++6sp6 にて "ok" が出ることを確認 #include "stdafx.h" #include <windows.h> #include <tchar.h> typedef BOOL ( WINAPI* LPFNLockWindowStation )( HWINSTA winSta ); typedef BOOL ( WINAPI* LPFNUnlockWindowStation )( HWINSTA winSta ); int main() {   HMODULE hLib = ::LoadLibrary( _T( "user32.dll" ) );   if ( hLib ) {     LPFNLockWindowStation lpfnLockWindowStation = ( LPFNLockWindowStation )::GetProcAddress( hLib, "LockWindowStation" );     LPFNUnlockWindowStation lpfnUnlockWindowStation = ( LPFNUnlockWindowStation )::GetProcAddress( hLib, "UnlockWindowStation" );     if ( lpfnLockWindowStation != NULL && lpfnUnlockWindowStation != NULL ) {       ::MessageBox( 0, _T( "ok" ), 0, 0 );     }     else {       ::MessageBox( 0, _T( "ng" ), 0, 0 );     }     ::FreeLibrary( hLib );   }   else {     ::MessageBox( 0, _T( "DLL not found" ), 0, 0 );   } return 0; }

参考URL:
http://www.google.com/search?num=50&hl=ja&q=LockWindowStation&btnG=%E6%A4%9C%E7%B4%A2&lr=
Williamtel
質問者

補足

返答(回答)、感謝します。 はい 探しました。 そして、指摘のあるように、例も見つけました。 言語が何であろうと・・と言われても、WindowStation 自体の 定義であったり、引数の「HWINSTA winSta」がわかりませんでした。 指摘されているURL(google)にしても、既に検索してみましたが、 私の勉強不足、英語の理解力の不足もあるでしょうが、 USER32.DLL内での関数の羅列であったり、ライブラリ番号であったりして、 機能や引数の説明が見当たらなかったことで、質問しました。 ここに書かれたコードにしても、呼び出しや利用法ですよね? それは、既に理解していることです。 ちなみに、Platform SDK に HWINSTA についてであったり、 WindowStation 関係の関数がありますが、LockWindowStation や UnlockWindowStation の記述は無く、書かれていることが、理解 できなかったこともあっての質問でした。 まあ、SDKすら理解できないのなら、使うな・・と言われそうですが・・ しかし、質問の関数については、書かれていません。

関連するQ&A