- 1 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:40:03 ]
- スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-10くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで - Win32API質問箱 wiki wiki.livedoor.jp/program1/d/FrontPage 【前スレ】 61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/
- 267 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 22:47:19 ]
- libjpegのソースに付随しているexample.cに
GLOBAL(int) read_JPEG_file (char * filename) あるからそこからスタートしてみたら? デコーダーの気にくわない部分があれば、 すっ飛ばしてstaticにリンクすればよい。
- 268 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 22:49:02 ]
- Win32APIスレだっつーの。
- 269 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:05:53 ]
- じゃあ BI_JPEG?
- 270 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:17:39 ]
- Win32APIスレだからGDI+を使った回答はは禁止
- 271 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:30:39 ]
- デスクトップユーティリティを作っているのですが、
フォーカスのあるプログラムに対してIMEによる入力が行われているときとそうでないときで動作を変えたいのですが、 他のプロセスのIME状態を取得するにはどんな方法がありますか? #IME入力中にマウスクリックで別のウィンドウをアクティブにしてから戻しても #漢字変換を続行できるのを見ると結構ややこしそうです。
- 272 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 23:59:12 ]
- はは禁止
- 273 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:12:15 ]
- はは禁止禁止
- 274 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 00:35:01 ]
- >>270
GDI+も広義のWin32のうちだろ。 もちろんネイティブC++ APIの方。
- 275 名前:デフォルトの名無しさん [2008/02/10(日) 00:48:03 ]
- >>274
はあ?
- 276 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:00:44 ]
- Win32APIの定義を教えてください
- 277 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:01:27 ]
- 自治厨答えろよ。
- 278 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:47:40 ]
- Win32 Application Programing Interface
- 279 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:57:59 ]
- ja.wikipedia.org/wiki/Graphics_Device_Interface
>Windows XPで、GDIはその後継であるC++ベースのサブシステムGDI+によって株を奪われた。 後継っつーならWin32APIスレの範疇にはいるんじゃないかと思う APIはApplicationProgramingInterfaceの略で文字通りの意味しかない 32ビットのWindows用だからWin32API 他にもPOSIXで策定してるPOSIXAPIとかいろいろある
- 280 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 02:01:26 ]
- そんなことは訊いていない
- 281 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 02:10:41 ]
- MS提供のAPIって事で良いよ。定義問題になると荒れるから。
- 282 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 02:50:20 ]
- >>281
つまり.NETもWin32APIって訳か
- 283 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 03:21:21 ]
- .NETは環境をWIN32に限定しないので残念ハズレ。
- 284 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 03:22:41 ]
- DirectXは?
- 285 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 03:56:28 ]
- DirectShowはSDKに統合されたからAPIの一部って事でいいんでね?
専用スレがあるのにここで聞いても誘導されるだけだと思うが
- 286 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 07:19:44 ]
- >>261
Susieプラグイン
- 287 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 07:43:54 ]
- NTでのWindowsサブシステムの標準APIと同等のAPI
- 288 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 09:03:12 ]
- COM周りでのも提供されてる微妙だな
- 289 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 10:05:08 ]
- Winsock, WinInet, WinHTTP, Theme, DWM, TSF, MSXML
- 290 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 10:44:43 ]
- >>288
日本語でおk
- 291 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 11:03:59 ]
- 数値を文字列に変換するAPIって何?
- 292 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 11:05:58 ]
- Shell Lightweight APIにもなんかあった気がするけど、wsprintf。
- 293 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 11:13:12 ]
- >>292
ありがとう。 頭文字が小文字なのでCランタイムの関数だと思ったら、user32.dllのAPIなのね。
- 294 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 11:41:09 ]
- >>282
ネイティブC/C++から満足に使えないからWin32 APIには入らないと俺は思う。 この立場からは.NETのUnmanaged Hosting APIはWin32。 でもこのスレにそんなこと質問してきたら、 それに関してはここよりわかる人がいそうな.NETのスレへ誘導するだろうけどね。
- 295 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 11:44:39 ]
- shlwapiはwnsprintfの方だな
- 296 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:43:12 ]
- MS提供のAPIなんて書いたら.NETどころかMFCやATLなんかもこのスレで扱う事になるだろ
- 297 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:44:28 ]
- このスレは技術レベル高い人が多いから、多少駆け込み寺みたいな
役割を求められても仕方がないのかも。 色んな質問が来るのは勲章だと思えばいいんじゃないかな。 広めに受け入れて、誘導できるものは誘導すればいい。
- 298 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:53:24 ]
- LoadImageで、パレットの違う2つの256色ビットマップから
DDBを作り、少しずつ色を変えながら色を出力すると、 表示されない色が出て、その色は2つのビットマップで違うのですが、 DDBにもパレットみたいなのがあるのでしょうか。
- 299 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 17:12:53 ]
- 少しずつ色を変えながら出力とは、
LoadImageでできたDDBを出力先にし、 FillRectで小さい四角を、 色、位置を少しずつ変えながら出力する感じです。 出力先は普通はCreateBitmap等で作ったDDBに すると思うんですが、実験という事でそれに出力しています。
- 300 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:32:01 ]
- ひとつのプロセスが開いているハンドル
(CloseHandleで閉じるハンドル・特にファイルハンドル) を列挙する方法はありませんか? GetProcessHandleCountっていうのを見つけたのですが、これだと数しかわかりません。
- 301 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:34:50 ]
- 高いのは技術レベルってより、知識量レベルだろ。その知識を生かして
どうプログラムに落とすかがプログラマの真価が問われる。このスレじゃ、それはわからん。
- 302 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 18:44:10 ]
- 突然マの真価とか語られても・・・それこそマ板でやれ
- 303 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 19:12:22 ]
- 297に同意
>DDBにもパレットみたいなのがあるのでしょうか。 あるよ。 SelectPaletteやCreatePaletteなどのAPIはDDBでも使用可能
- 304 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:02:29 ]
- xpでVS2008express editionでスクリーンセーバー作ろうとしたら
コンパイルできるのに起動時にエラーがでるのだが。 ちなみにsystem32以下のuser32.dllのタイムスタンプは2004年8月4日になってる。 わかる? エラーメッセージ 「エントリポイントが見つかりません プロシージャエントリポイントChangeWindowMessageFilterがダイナミックリンクライブラリUSER32.dllから見つかりませんでした」 ソース #include <windows.h> #include <scrnsave.h> #pragma comment(lib, "scrnsavw.lib") #pragma comment(lib, "comctl32.lib") LRESULT WINAPI ScreenSaverProcW(HWND hWnd, UINT msg,WPARAM wParam, LPARAM lParam) { return DefScreenSaverProc(hWnd, msg, wParam, lParam); } BOOL WINAPI ScreenSaverConfigureDialog(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) { return TRUE; } BOOL WINAPI RegisterDialogClasses(HANDLE hInst) { return TRUE; }
- 305 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:09:33 ]
- ChangeWindowMessageFilterはVistaにしかない
- 306 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:12:56 ]
- あれ?どこかのスレでも同じ質問みたな
- 307 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:13:57 ]
- 付属ライブラリがVista専用かよ
- 308 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:19:33 ]
- targetver.h 書き換えろよ。デフォルトがVistaになってるぜ。
- 309 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:26:04 ]
- >>306
VS2008スレで見たね
- 310 名前:304 mailto:sage [2008/02/10(日) 21:07:55 ]
- なんだ、2008はほとんどvista用か
2005入れ直すかな 他のスレに同じことやってる奴がいてわらた みんなthx
- 311 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:10:53 ]
- そして無視される308お陀仏……。
- 312 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:32:12 ]
- 他のスレでも同じように2005を入れなおそうという奴がいるのか
それはちょっと面白いな
- 313 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 01:19:48 ]
- VS2008でセィバーだが、こっちにも俺と同じヤツがいたwww
これ、MSのどっかにねじ込んでおけばいいんだよな?
- 314 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 02:03:00 ]
- タスクメニューのアイコンを右クリックすると、メニューが出るプログラムを作成しています。
一応完成したのですが、アイコンをクリックした時に 2回目のクリックからタスクバーのプロパティーまで表示されてしまいます。 マウスのイベントがタスクバーまで伝播しているようなのですが、 この回避方法はどうやればいいのでしょうか? 誰かご教授ください。
- 315 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 02:11:15 ]
- 貴様の間違ったコードを正しくすればいい。
正しく書いていればそのような挙動はしない。
- 316 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 03:03:52 ]
- こんばんは
早急に教えてください。 malloc() はどのDLLのエクスポート関数でしょうか?
- 317 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 03:07:02 ]
- msvcrt20.dllだな
- 318 名前:316 mailto:sage [2008/02/11(月) 03:11:10 ]
- >>317
ありがとう
- 319 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 03:17:57 ]
- ざくざくでてくるね。
crtdll.dll msvcrt.dll msvcrt40.dll mscvr70.dll mscvr71.dll mscvr80.dll mscvr90.dll mscvr71d.dll mscvr80d.dll mscvr90d.dll cc3250mt.dll (Borland) cygwin1.dll
- 320 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 03:26:49 ]
- ほとんどバージョンかデバッグ版かどうかの違いだな。
- 321 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 03:34:24 ]
- タブコントロールの行が複数行になるかどうかを調べる方法ってないですか?
誰か教えてください
- 322 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 05:03:20 ]
- >>314
もしかして通知トレイのことか? メニュー出す直前にSetForegroundWindow()を呼ぶ あとNULLでSendMessage()
- 323 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 05:11:46 ]
- っと、Postだった
- 324 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 05:59:42 ]
- 画像ビューアを作ってて、ファイルの並び順をエクスプローラと同期させたいのですが
アイコンの整列の「名前」「サイズ」「種類」「更新日時」の状態を取得することって出来ないでしょうか?
- 325 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 06:45:49 ]
- エクスプローラを2つ表示させてソート順変更しても、
それぞれ同期してないけど、その場合どうするつもり? 後で指定されたソート方法を優先? そもそもこれってAPIの質問?
- 326 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 08:36:47 ]
- >>303
ありがとうございます。
- 327 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 09:06:30 ]
- >>324
IShellFolder2::GetDefaultColumn()でどう? msdn2.microsoft.com/en-us/library/bb775045(VS.85).aspx msdn2.microsoft.com/en-us/library/bb775055(VS.85).aspx 2000or98ME以降になっているが 95,98のIShellFolderやIShellDetailsにはそれらしきメンバは無いな。 エクスプローラを最後に閉じたときの状態が取得できるようなので 厳密に同期を取る325のいうようなケースは厄介そう。 > アイコンの整列の「名前」「サイズ」「種類」「更新日時」の状態を > 取得することって出来ないでしょうか? シェルを拡張してColumnが追加されているケースもありうるよ
- 328 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 09:26:54 ]
- >>321
スタイルにTCS_MULTILINEがついているかどうかで
- 329 名前:314 mailto:sage [2008/02/11(月) 13:36:41 ]
- >>322
レスサンクス!ActiveとNull送信はやってます。 原因はWM_ACTIVEをラップしてなかったからです。 商用アプリでも同じ現象が発生してて、ちょっとびっくりしてました。 どうもです。
- 330 名前:321 mailto:sage [2008/02/11(月) 16:16:49 ]
- >>328
すいませんちょっと情報不足でした スタイルにTCS_MULTILINEを設定しても、タブが少なかったら1行で表示されますよね? TCS_MULTILINEを設定して、タブを追加して、その結果として複数行で表示されるか否かを知る方法はないのでしょうか? ということが聞きたかったのですが
- 331 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 16:19:20 ]
- 難しい
GetClientRectとTCM_ADJUSTRECTを使えば タブのつまみ部分に使われてる高さは分かる
- 332 名前:321 mailto:sage [2008/02/11(月) 16:51:59 ]
- >>331
レスありがとうございます 結果的に取得したかったのはタブのつまみの高さなので、それで十分です
- 333 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:41:11 ]
- >>330
ごめん。そこまで気が回らなかった。 解決したみたいだけど、 事前に知ることはできなそうだが、追加後でよければ TCM_GETROWCOUNTで行数を取得できるよ。
- 334 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:17:40 ]
- SelectObject( hdc, CreateSolidBrush(RGB( 0, 0, 0) );
とした場合はDeleteObject()しなくていいですか
- 335 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:42:06 ]
- >>334
だめです。 new = CreateSolidBrush(...); old = SelectObject(..., new); 個々で何らかの処理。 SelectObject(..., old); DeleteObject(new); とするべき。
- 336 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:47:10 ]
- こう書けなくもないはずだが、あまり見ない書き方だから、やめたほうがいい。
old = SelectObject(..., CreateSolidBrush(...)); DeleteObject(SelectObject(..., old));
- 337 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:00:10 ]
- けどそれなら、変数用意しなくて良いな。
別の方向に混乱しそうだけど。 どういう処理なのか一瞬わからんかったw
- 338 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:15:58 ]
- CreateSolidBrushの戻り値を見てないってのが気にはなるなあ。
滅多に失敗しないのは確かだけど。
- 339 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:46:29 ]
- もう面倒くさいしディリートしなくてもいいじゃん
ディリートしないせいで問題が起きたことないし
- 340 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:52:44 ]
- 9xを使ったことがないから言えるセリフだな、それ。
いや、確かめたわけではないけれど。
- 341 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:52:50 ]
- ここで
「いちいちディリートしなくても勝手にGCしろよ」 とドトネト厨登場↓
- 342 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:56:18 ]
- RAIIクラスを作って
デストラクタででぃりーとしろよ
- 343 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 01:59:50 ]
- Sleipnirが盛大にGDIリソースリークしてて、
連続稼動させてると他のアプリケーションまで表示がぐちゃぐちゃになったことがあったな。
- 344 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 02:23:45 ]
- こうですか、わかりません!
class GDIBinder : noncopyable{ HDC mhdc; HGDIOBJ old; public: GDIBinder (HDC dc, HGDIOBJ obj) : mhdc(dc) { old = SelectObject( mhdc, obj ); } ~GDIBinder(){ SelectObject(mhdc, old ); } operator HDC (){return mhdc;} };
- 345 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 04:40:47 ]
- 重い処理をさせたらウィンドウを動かしたりできなくなるんですが、どうすれば
WinRARみたいに重い処理をさせてもウインドウ動かしたり出来るようになりますか?
- 346 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 04:43:48 ]
- スレッドわけろ。
- 347 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 04:44:17 ]
- MultiThreadですよ。
- 348 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 04:48:56 ]
- ありがとうございます。やっぱりああいうのはマルチスレッド使ってるのか
勉強してみます
- 349 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 08:56:05 ]
- >>344 RestoreDCを忘れるなよ
- 350 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 12:47:18 ]
- >>225
クッキー
- 351 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:31:04 ]
- 何回もSelectObjectをかけながら処理してく場合、いちいち戻さないで
最初にSaveDC/最後にRestoreDCで一気に戻した方が楽な場合もある
- 352 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 13:56:30 ]
- Server2008対応の新SDK正式版出てたのね
- 353 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 16:50:18 ]
- >>352
urlぐらい書けよ
- 354 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 17:05:54 ]
- ttp://www.microsoft.com/downloads/details.aspx?familyid=F26B1AA4-741A-433A-9BE5-FA919850BDBF&displaylang=en
- 355 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 17:38:29 ]
- PlatformSDKの新版はもう出ないのかな・・・
- 356 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:32:21 ]
- まさにこれだろ。
WindowsSDKに名前が変わって、.NETも含まれるようにはなったけど。
- 357 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:39:13 ]
- >>356
.NET使わないんでPlatformSDKの頃みたいにWin32関連だけインスコできればなと 色々統合されてたりして無理なのかな
- 358 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 18:45:04 ]
- Windows SDK = Platform SDK + .NET Framework SDK
- 359 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:10:04 ]
- .NET FrameworkをインスコしないでPlatformSDKだけ入れさせろって意味
- 360 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 19:11:13 ]
- やってみれ
- 361 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:09:28 ]
- ボタンコントロールで質問です。
BM_SETSTATEで押し込んだ状態にできますが、 クリックしたり、クリックしたままボタンの上から移動すると 出っ張った状態に戻ってしまうんですが、 トグルボタンのようなものを作るにはどうしたらよいですか。 MFCなら同じメッセージを送ればそのまんま動くみたいですが MFCなしでお願いします
- 362 名前:デフォルトの名無しさん [2008/02/12(火) 20:34:05 ]
- リストビューコントロールについて質問します。
リポートビュースタイルを適用しています。 リストビューに項目を設定するには、 LVITEM lv; lv.iItem = 0; ListView_InsertItem(hListView, &lv); ListView_SetItemText(hListView, 0, 1, TEXT("項目1−1")); という形で大丈夫なはずだと思うんですが、なぜかうまくいきません。 どこがおかしいのでしょうか
- 363 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 20:55:26 ]
- >>359
インストール時のコンポーネント指定でドトネト関連だけ外せばいいじゃん ダウンロードするファイルのサイズ自体を減らしたいというならそれは無理な相談、だがwebインスコなら可?
- 364 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:06:07 ]
- Sleep(1);よりも短い時間のウェイトは作れない?
精度はまったくいらないんだけど。
- 365 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:11:35 ]
- じゃあ1でいいだろ
- 366 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:12:24 ]
- 精度要らないならSleep(1)でいいじゃん。
- 367 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 21:13:09 ]
- ビジーループでおk
|

|