tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: SPI_SETFOREGROUNDLOCKTIMEOUTについて
投稿日: 2008/12/12(Fri) 14:28
投稿者魔界の仮面弁士
Get 時には、変数の参照を渡しますが、
Set 時には、値そのものを渡さねばなりません。SDK で確認しておいてください。

VB6 的に言えば、前者は「Long 型変数の ByRef 渡し」または「VarPtr の ByVal 渡し」、
後者は「Long 値の ByVal 渡し」です。


今回の場合は、Declare 宣言を「ByRef pvParam As Long」で行っていますので、
 'bRtn = SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, 0, 0)
  bRtn = SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, ByVal 0&, 0)
そして
  'bRtn = SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, lTime, 0)
  bRtn = SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, ByVal lTime, 0)
とする必要があるでしょう。


> 最後の再度取得を実行してみると1305288という値が入っておりました。
ポインタですね。変数のアドレス値がそのまま設定されたのでしょう。

おそらく、それを実行した時点の
  Debug.Print VarPtr(lTime)
の値が、1305288 だったのだと思いますよ。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。