トップページ⇒tech
1001コメント212KB

Win32API質問箱 Build91

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2010/11/08(月) 02:01:42
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやHなお姉さんたちが答えてくれるかも。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

■過去スレ
Win32API質問箱 Build90
http://hibari.2ch.net/test/read.cgi/tech/1287205063/

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage

過去スレはwikiから探してください。
0784デフォルトの名無しさん2010/12/14(火) 10:19:30
やめねえよクズ
0785デフォルトの名無しさん2010/12/14(火) 10:24:02
こんなスレいらんだろ

クズがクズに教えても何も解決しない
もはや存在意義なし
0786デフォルトの名無しさん2010/12/14(火) 10:32:27
英語が読めなくても、翻訳しながら意味を解釈していけばいいだけの話。
結局のところ怠け者の言い訳なんだよね。
0787デフォルトの名無しさん2010/12/14(火) 10:39:10
クズは回答すんなよ w

プログラムの初期化時にCoInitializeかOleInitializeしてるか?
0788デフォルトの名無しさん2010/12/14(火) 10:39:28
> 翻訳しながら意味を解釈していけばいいだけの話。
それは英語読める方に分類してやってるんだが。それすら出来ないカスは今すぐPGやめろ。
0789デフォルトの名無しさん2010/12/14(火) 10:41:15
定期あげ
0790デフォルトの名無しさん2010/12/14(火) 10:46:20
PG
必要な技能 翻訳サイトにコピペしてボタンを押す
0791デフォルトの名無しさん2010/12/14(火) 10:47:53
よほどマニアックなAPIで無い限り根性でググレば意外と日本語のサイトも見つかるぞ
初歩は頭の良し悪し以前に気合で何とかなる
0792デフォルトの名無しさん2010/12/14(火) 11:28:47
MSDN日本語版を筆頭として日本語のサイトには嘘が多い。
0793デフォルトの名無しさん2010/12/14(火) 11:48:43
ここも日本語サイトだよな
0794デフォルトの名無しさん2010/12/14(火) 11:50:31
MSDNとVSのヘルプシステムの連携は
海外でも評判よくないw
0795デフォルトの名無しさん2010/12/14(火) 12:22:49
そりゃそうだろw
MSDNは名前だけでMSは無関係
0796デフォルトの名無しさん2010/12/14(火) 12:41:04
>>795
え?
0797デフォルトの名無しさん2010/12/14(火) 12:41:46
MSDNは二次創作なんだが
0798デフォルトの名無しさん2010/12/14(火) 12:58:02
いいからAPI出せや
0799デフォルトの名無しさん2010/12/14(火) 13:13:55
SetRect
0800デフォルトの名無しさん2010/12/14(火) 13:46:20
Insert(girl)
0801デフォルトの名無しさん2010/12/14(火) 13:56:56
? 0
0802デフォルトの名無しさん2010/12/14(火) 14:00:56
名前の一番長いWinAPIは何
0803デフォルトの名無しさん2010/12/14(火) 14:14:26
IsTheLongestNameAPIEx2
0804デフォルトの名無しさん2010/12/14(火) 14:19:34
ぐぐったところによれば
ConvertStringSecurityDescriptorToSecurityDescriptor
0805デフォルトの名無しさん2010/12/14(火) 15:51:42
どなたか、midiInStopとmidiInRestの違いを教えてください。
MSDNの解説見ると、キューのバッファの処理が違うようなんですけど、
具体的に何が変わって来るのかわかりません。
0806デフォルトの名無しさん2010/12/14(火) 15:58:44
midiInAddBuffer で投入したバッファの残ってるやつがアプリ側に返されるかどうかじゃない
0807デフォルトの名無しさん2010/12/14(火) 16:09:04
それが何のことだかわからないんだけど・・・
戻らないと何か不都合があるのか?とか、どう使い分けるのか?とか・・・
具体例を教えて欲しいなあと。
MSDNってほんと解らない。
0808デフォルトの名無しさん2010/12/14(火) 16:12:06
不都合って、渡したままのバッファを free できないじゃない
まだ使ってるのに
0809デフォルトの名無しさん2010/12/14(火) 16:24:07
戻るとフリーになるんだ?
バッファは必ずフリーにしないといけないって決まりなの?
だったらReset使っておけば問題無いのかな?

これってロングメッセージ限定の話だよね?・・・ってそこまで知らないか。
0810デフォルトの名無しさん2010/12/14(火) 16:34:01
APIを呼び出した時点で新規入力を停止するまでは共通
バッファに残った未処理のデータをコールバックで通常処理するならReset
ただちに完了マークをつけるならStop

これのどこが理解できない
0811デフォルトの名無しさん2010/12/14(火) 16:43:18
なにファビョってんだかw
0812デフォルトの名無しさん2010/12/14(火) 16:45:22
>>809
いやいや、メモリを malloc で確保したら free で解放しなきゃいけないから
malloc でバッファを確保 → midiInAddBufferに渡す → midiInがバッファにデータを書き込む → バッファが戻ってくる → free でバッファを解放
という流れのプログラムを組むことになるだろ
もちろん malloc/free じゃなくて GlobalAlloc/GlobalFree でもなんでもいいが
もちろんグローバル変数を使うのなら解放する必要はない
ロングメッセージ限定の話
ショートメッセージはバッファ使わない
0813デフォルトの名無しさん2010/12/14(火) 16:58:36
久しびりに聞いた単語 MIDI
0814デフォルトの名無しさん2010/12/14(火) 16:58:50
エッチなまうまう?
0815デフォルトの名無しさん2010/12/14(火) 17:06:57
エッチしてるなう
0816デフォルトの名無しさん2010/12/14(火) 17:21:40
>>810>>812
なるほど!バッファのルールがまだよく分かってないんだけど、
なんとなく流れが分かった。
MSDNもこういう具体的な解説付けてくれたらいいのにな。
ありがとうございました。
0817デフォルトの名無しさん2010/12/14(火) 18:08:07
まだMSDNとか言ってんのか
0818デフォルトの名無しさん2010/12/15(水) 00:04:35
MSDNの
「システム排他メッセージ」ってやめて欲しいな
「システムエクスクルーシブメッセージ」と呼ぶって、MIDIの規格書に書いてあるだろ

MIDI知らないやつが翻訳するからこうなる
0819デフォルトの名無しさん2010/12/15(水) 00:17:56
こんな風に名前を付ければ誤解されずに済んだかも

midiInStop -> midiInPause
midiInReset -> midiInStop
0820デフォルトの名無しさん2010/12/15(水) 00:19:23
ローカル(操作PCに完全にインストールされた)なMSDNには価値がある。
ちょっと調べたい時にスパッと出てくるので便利。
ネットワーク経由のMSDNにはあまり価値がない、
ネットで検索するぐらいならMSDNなんて見ない。
0821デフォルトの名無しさん2010/12/15(水) 00:21:50
2010のExpressはローカル版ないんで?
0822デフォルトの名無しさん2010/12/15(水) 03:07:54
いいからISDN出せや
0823デフォルトの名無しさん2010/12/15(水) 03:17:06
CopyISDN
0824デフォルトの名無しさん2010/12/15(水) 03:39:58
>>821
そんな貧乏くさいもん使うな
0825デフォルトの名無しさん2010/12/15(水) 03:44:09
音響カップラーって売ってますかね?
0826デフォルトの名無しさん2010/12/15(水) 04:39:22
WIN32APIはオワコン
0827デフォルトの名無しさん2010/12/15(水) 05:21:53
32ビットオワコン
0828デフォルトの名無しさん2010/12/15(水) 07:37:31
御前らフロッピーをDMFフォーマットするAPIを教えて下さいな
0829デフォルトの名無しさん2010/12/15(水) 09:12:13
定期あげ
0830デフォルトの名無しさん2010/12/15(水) 09:22:44
>>818
キミが見ているのは偽物のMSDN。本物はsystem-exclusive messagesと書いてある。
0831デフォルトの名無しさん2010/12/15(水) 09:36:12
いいからOPPAI出せや
0832デフォルトの名無しさん2010/12/15(水) 09:39:15
(・)(・)
0833デフォルトの名無しさん2010/12/15(水) 15:13:00
WH_MOUSE_LLよりさらに低水準で、
状態取得のみ可能なAPIってありませんでしたっけ?
0834デフォルトの名無しさん2010/12/15(水) 16:55:13
>>833
Raw Inputのこと?
0835デフォルトの名無しさん2010/12/15(水) 17:17:20
>>831
(。人。)
0836デフォルトの名無しさん2010/12/15(水) 20:35:54
繋がってる液晶モニタのリアル解像度を取得することってできませんか?

CRT時代だったら需要のないAPIだと思うけど…
0837デフォルトの名無しさん2010/12/15(水) 20:39:37
GetSystemMetrics
0838デフォルトの名無しさん2010/12/15(水) 21:16:47
なんとWindows3.1時代から実装されているAPIであった…
0839デフォルトの名無しさん2010/12/15(水) 21:32:21
>>836
そういう情報がそもそもないから存在しない
0840デフォルトの名無しさん2010/12/15(水) 21:35:51
>>836
俺もだいぶ前から探してるんだけど、どうにも見つからない。
Vista以降のMonitor Configuration APIでモニタの種類を取得とかはできるんだが。

ドライバレベルでは取得できてるようなので、その情報にアクセスできる共通のAPIが
あればいいんだが。
0841デフォルトの名無しさん2010/12/15(水) 21:50:59
http://msdn.microsoft.com/en-us/library/dd145189%28v=vs.85%29.aspx
VIDEOPARAMETERS Structure
DISPLAY_DEVICE Structure
EnumDisplayDevices Function
0842デフォルトの名無しさん2010/12/15(水) 21:53:06
ペゾルド本p.171

>プログラムがディスプレイの実際の物理サイズを必要とする場合にはどうしたらよいのだろうか?
>おそらく、最良の方法は、ダイアログボックスを使ってユーザに直接入力してもらうことだろう。
0843デフォルトの名無しさん2010/12/15(水) 21:53:32
>>841
ずるいよ^^
0844デフォルトの名無しさん2010/12/15(水) 21:58:39
VGAで使ってる液晶の時でも、XGAでの解像度を取得したいんだよね?
0845デフォルトの名無しさん2010/12/15(水) 22:01:45
そうだよね。基本無理。
0846デフォルトの名無しさん2010/12/15(水) 23:05:17
>>843
どうして
0847デフォルトの名無しさん2010/12/15(水) 23:11:27
>>846
自分がペゾルド本をせっせと調べているうちに正解が書きこまれたので^^;
0848デフォルトの名無しさん2010/12/16(木) 00:04:41
って夕香、リアル解像度って何?w
ネイティブ解像度のこと?物理的なサイズ?それとも私?
0849デフォルトの名無しさん2010/12/16(木) 00:23:07
親ウィンドウをリサイズした際に、ウィンドウ内のコントロールのサイズも適宜変えるにはどうすればいいでしょうか?
0850デフォルトの名無しさん2010/12/16(木) 00:23:32
物理的な解像度のことじゃね
定規持ってインチ数を測ってピクセル数を割る
0851デフォルトの名無しさん2010/12/16(木) 00:25:03
>>849
WM_SIZE とか WM_WINDOWPOSCHANGED とかのメッセージを捕まえて
MoveWindow とか SetWindowPos で適宜変えてください
0852デフォルトの名無しさん2010/12/16(木) 01:19:46
Windows付属のエクスプローラーで、ドライブやフォルダーがツリー表示されますが
それと同じ表示をするコントロールは、何かありますか?

SHBrowseForFolder()を使うと、フォルダーを選択するダイアログを表示できる
ところまでは分かったのですが。それと同じ表示をするものをウィンドウクライアント上に
コントロールとして貼りたいです。
0853デフォルトの名無しさん2010/12/16(木) 01:22:12
貼る(笑)
0854デフォルトの名無しさん2010/12/16(木) 01:28:46
ツリービュー
0855デフォルトの名無しさん2010/12/16(木) 01:37:31
>>854
やはりTreeViewコントロールを利用して、自作するしかない感じですね><;
情報ありがとうございました
0856デフォルトの名無しさん2010/12/16(木) 02:18:16
OS依存のものは面倒なんで、OSのをそのまま使うほうが楽だぜ。
自分で作る場合はShellAPI関係経由で実装はできると思うけど。
0857デフォルトの名無しさん2010/12/16(木) 07:53:48
Vista以降ならエクスプローラコンポーネントを貼るだけでいけたような・・・
0858デフォルトの名無しさん2010/12/16(木) 09:04:03
定期あげ
0859デフォルトの名無しさん2010/12/16(木) 12:51:55
IE貼ればエクスプローラになる
0860デフォルトの名無しさん2010/12/17(金) 06:38:55
俺は貼られる側を作るのが専門。
だから、APIとATLとCOMについてはかなり詳しく知っている。
0861デフォルトの名無しさん2010/12/17(金) 07:22:26
そんな最低限の知識自慢されても笑われるだけだよ。
言うのはこのスレだけにしとけよ。
0862デフォルトの名無しさん2010/12/17(金) 07:49:09
>>860
そのわりには、このスレの回答レベルかなり低いけど
0863デフォルトの名無しさん2010/12/17(金) 07:49:09
自慢はしたいだけすれば良いよ
どうせ匿名だし誰か判らないんだから意味無いよね
0864デフォルトの名無しさん2010/12/17(金) 10:07:42
>>862
msdn libraryを見ればわかる質問とスレ違いの質問しか無いから
0865デフォルトの名無しさん2010/12/17(金) 16:14:35
定期あげ
0866デフォルトの名無しさん2010/12/17(金) 17:43:58
>>857 >>859
ナビゲーションバー出る?
0867デフォルトの名無しさん2010/12/18(土) 00:18:12
質問させてください。

C++でPlatform SDKとVisualStudio(VS)・そのリソースエディタを使って組んでいるのですが、
Windows7のそれのような見た目を持つコントロール(緑色のプログレスバーなど)を
利用するにはどうすればいいのかヒントを教えていただけないでしょうか。

これまでのアプリをWin7上で実行するとコントロールの見た目が勝手に置き換わる、
と思ったらそうではなかったので
(ウィンドウのタイトルバーの見た目は勝手に置き換わって半透明になってます)。
Win7にインストールしたVSのリソースエディタ上ではWin7の見た目になっているので、
できないことはないと思うのですが。
0868デフォルトの名無しさん2010/12/18(土) 00:24:28
新しいバージョンでどうぞ
0869デフォルトの名無しさん2010/12/18(土) 00:37:53
定期あげ
08708672010/12/18(土) 00:55:40
>>868
情報後出しになってすみません、VS2008です。
2010でビルドすればWin7ルックになるということですか?
0871デフォルトの名無しさん2010/12/18(土) 01:04:43
訪問記念、カキコ

>>870
後出しは世界中のどこでも嫌われる
そう思うなら2010でやってみる
0872デフォルトの名無しさん2010/12/18(土) 01:07:00
Platform SDKじゃなくてWindows SDK for Windows 7でやれ
0873デフォルトの名無しさん2010/12/18(土) 01:10:15
どこでそれ手に入れられんですか?
いぐらぐらいするんですか?
0874デフォルトの名無しさん2010/12/18(土) 01:11:04
ググルかMSのサイトで調べるんだ。
0875デフォルトの名無しさん2010/12/18(土) 01:15:47
まぁ2010でやればWindowsSDK7.1は標準なんだが
0876デフォルトの名無しさん2010/12/18(土) 01:20:45
VS2010はMFCも新OS対応になってて色々面白いぞ
0877デフォルトの名無しさん2010/12/18(土) 01:24:29
さっさと2010を買うが超大吉ですよ
http://www.microsoft.com/japan/visualstudio/

訪問記念で訪れた僕でさえ2010使ってるんですから
08788672010/12/18(土) 01:26:50
>>871
そうですよね、すみません。さらに言うと2008のSP1でした。
2010はexpressだとリソースエディタが使えないのでインストールしてないのですが、
今度インストールして試してみます。

>>872
おおおこんなものが出てたんですね、存在すら知りませんでした、ありがとうございます!

ざっと見たところ、.NET系のプログラミングに使えるものであって、
DialogBox()でダイアログリソースを渡して…という(PlatformSDK的?な)やり方では
利用できないような印象を受けましたが、もうちょっと詳しく調べてみます。

>>875
さらにヒントをありがとうございます。

ちなみに873は俺じゃないです。
みなさんありがとうございました。
0879デフォルトの名無しさん2010/12/18(土) 01:28:43
2008ってVista対応のSDKが付属してるのに
わざわざそれより古いPlatform SDK使ってるのかよ
08808672010/12/18(土) 01:29:26
またorz…2008のStandardのSP1でした。
08818672010/12/18(土) 01:36:35
俺が"Platform SDK"の意味を勘違いしてたみたいです。

俺がやってるのは新規プロジェクトからWin32アプリケーション(コンソールじゃないほう)を
選んでOKで進めてCreateWindow()やらDialogBox()で書いていくような、
”猫でもわかるプログラミング”のSDK編にリソースエディタを足したようなやりかたです。

てっきりこのやりかた=Platform SDKを利用したやりかただと思ってました。
(というのもVisualStudio2005のexpressを使っていた頃は、VS2005に加えてPlatform SDKを
インストールしないとビルド出来なかったからです。)
0882デフォルトの名無しさん2010/12/18(土) 01:42:27
マニュフェスト書くだけだろ。
なんでこんな基本的な事をちゃんと答えてやれないんだ?
08838672010/12/18(土) 02:18:32
>>882
情報ありがとうございます!
manifestってコントロールの外観を変えるのに使えるんですね!
単語は目にしていましたが特に触らなくてもこれまで困らなかったので何に使えるのかも知りませんでした。
ふむ…(一周前になりますが)2000ルックのコントロールをmanifestでXPルックのlunaにできると…。

Windows SDK for Windows7とmanifest、この2つについて調べようと思います。
みなさんレスありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています