- PR -

C#でAPIのGetGUIThreadInfoを使う

1
投稿者投稿内容
ジェイ
ベテラン
会議室デビュー日: 2002/10/06
投稿数: 62
投稿日時: 2003-09-22 23:10
お世話になります。ジェイです。

C#でGetGUIThreadInfoを使って、アクティブウィンドウのカレットを取得して、
カレット付近にウィンドウをポップアップさせるプログラムを作成中なのですが、
GetGUIThreadInfoを使っても取得できません・・・。

どなたかC#でGetGUIThreadInfoを使ったことあるかたいらっしゃいませんか?
ヒントだけでも頂けたら幸いです。
ご教授のほど、よろしくお願いいたします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-09-23 00:22
9/6の投稿と同じ問題ですね?

 DLL Importするときに、引数を「値渡し」か、「参照渡し」かに設定するようなところがないですか?済みません、今資料がないので。デフォルトでは値渡しになっているので、関数(API)で変更した内容が戻ってこない、ということだと思いますけど。。。
ジェイ
ベテラン
会議室デビュー日: 2002/10/06
投稿数: 62
投稿日時: 2003-09-23 01:03
Jittaさんありがとうございます。

おっしゃる通り9/6の投稿と同じです。
いろいろ調べていて、GetCaretPosよりGetGUIThreadInfoの方がいい気がしたので、
やってみたのですが、うまくいかず・・・。
あまり、APIを使ったことがないので、全然わからなかったのです。
値渡しと参照渡しについてちょっと調べてみます。
ジェイ
ベテラン
会議室デビュー日: 2002/10/06
投稿数: 62
投稿日時: 2003-09-23 01:17
自己レスです。

[DllImport("user32.dll", EntryPoint="GetGUIThreadInfo", CallingConvention=CallingConvention.Winapi)]
public static extern uint GetGUIThreadInfo (uint dwthreadid ,ref GUITHREADINFO lpguithreadinfo );

にしたところ値が戻ってきました。
Jittaさんありがとうございました!
1

スキルアップ/キャリアアップ(JOB@IT)