Win32API 質問箱 Build5
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGやさしいお兄さんたちが答えてくれるかも。
でも、最低限Web検索ぐらいはしてね。
前スレ
Win32API 質問箱
http://pc.2ch.net/tech/kako/991/991576947.html
Win32API【2】
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API 質問箱 Build3
http://pc.2ch.net/tech/kako/1006/10067/1006783012.html
Win32API 質問箱 Build4
http://pc3.2ch.net/test/read.cgi/tech/1023361418/
参考
MSDN Online
http://www.microsoft.com/japan/msdn/default.asp
猫でもわかるプログラミング
ttp://www.kumei.ne.jp/c_lang/index.html
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG乙
0004デフォルトの名無しさん
NGNGMS、和解案準拠で各種の通信プロトコルとAPI公開へ
http://www.zdnet.co.jp/news/0208/06/nebt_01.html
米マイクロソフト、ウィンドウズのコードを一部公開へ
http://www.cnn.co.jp/business/K2002080600088.html
0005デフォルトの名無しさん
NGNG> やるなら、
> if (CharPrev(lpszPath, lpszPath+lstrlen(lpszPath)-1) != '\\')
> lstrcat(lpszPath, TEXT("\\"));
> とかだろ。
これは
if(lstrcmp(CharPrev(lpszPath, lpszPath+lstrlen(lpszPath)-1), TEXT("\\")))
lstrcat(lpszPath, TEXT("\\"));
ってことかな?
これも「も\\」になるのだけど。
0006デフォルトの名無しさん
NGNGチョット(・∀・)ワクワク!!
0007デフォルトの名無しさん
NGNGそんなのがあったのかー。MSならやりそうなこった。
だんだんWindowsで作るのが馬鹿らしくなるな・・・
0008977
NGNG> if(lstrcmp(CharPrev(lpszPath, lpszPath+lstrlen(lpszPath)-1), TEXT("\\")))
> lstrcat(lpszPath, TEXT("\\"));
> ってことかな?
if( *CharPrev(lpszPath, lpszPath+lstrlen(lpszPath)) != TEXT('\\') )
lstrcat(lpszPath, TEXT("\\"));
ってことではなかろうか。
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGただのライブラリだと知って愕然とした記憶が有るよ。
ファイル列挙するのに FindFileFirst&Next 使えって一体。
Open&ReadDirectory みたいな関数でさっくりと
ディレクトリハンドル開かせろ、読ませろ、とか思ってしまう。
0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG仮に OleLoadPicturePath() 関数を使って画像を展開したとしても
少なくとも GIF に関しては特許料を支払う必要がある(とユニシス社は主張している)
JPEG に付いては知らん
0013デフォルトの名無しさん
NGNGスレ違いになるけど #include <dirent.h> でどうよ
0014JPEG特許問題
NGNGたしかに「GIF恐いからGIFだけ排除した」とか書いてる人見ますね。
でも、OleLoadPicturePathが勝手にGIF読んでるだけだから
折れは知らんと言うのはダメなのかな?
折れはJPEGを読みたいだけだ。文句はMSにすれ。なんて。
−−>訴えられたら負けデスか?
0015デフォルトの名無しさん
NGNG少なくともMSも味方はしてくれんと思うけど。
http://www.microsoft.com/DEVONLY/Unisys.htm
> Although Microsoft is licensed under these patents, Microsoft's
> license does not extend to software developers or third parties
> who use Microsoft toolkit, language, development or operating
> system products to provide GIF read/write ...
# 誰か裁判に持ち込んではっきりした判例を作ってくれないかなぁ。
0016デフォルトの名無しさん
NGNGこれをコピーしてるのはコピー機なんだから著作権料はゼロックス社に請求しろ
と言ってるようなもんだ
少なくともユニシス社的には
0017JPEG特許問題
NGNG英語じゃよく分かりませんが、確かにMSは味方してくれそうにないですね。w
MS独自開発の画像フォーマットでも作ってもらいましょうか。
WMFは却下。
>>16
いやいや、折れはゼロックスのコピー機を売ってる立場であり、
客が紙幣をコピーしようがこっちの知ったこっちゃ無いって立場の
つもりです。
折れ自身は、JPEGの表示がしたいだけなのだから、マニュアルにJPEG以外は
表示させないで下さいとでも書いておけば、完璧だと思ふ。
いろんな意見モトム。
ちょっと板ずれかも。
0018デフォルトの名無しさん
NGNGそやつを終わらせたい場合ってTerminateProcessしかない?
0019デフォルトの名無しさん
NGNGAPIで取得するにはどうしたらいいでしょうか?名前やインストールフォルダ、日付などを取得したいのですが。。。
MSDNを眺めてみて、あてずっぽうでMsiEnumProducts→MsiGetProductInfoとやってみたら、
何故か一部のリストしか取得できませんでした。なんでこんな中途半端な結果が???
0020デフォルトの名無しさん
NGNGGIFの場合はユニシスが「その手はダメだよ」と言っていたような覚えがあるけど
ソースが出てこない・・・誰か覚えている人ソースキボンヌ。勘違いだったらゴメンネ
0021デフォルトの名無しさん
NGNG>IEコンポーネント利用のソフトは“消尽理論”で対象外
これかかげとけば十分なんじゃないの?
0022デフォルトの名無しさん
NGNGそれで「も」も「表」も上手くいきました。
これで大丈夫・・・ですよね?他に落とし穴は無いかなぁ・・
0023JPEG特許問題
NGNGこれ見る限りでは全然問題無さそうですね。
たしかに、OleLoadPicture関連はMSが特許料を払っているはず
とは思ってましたが、”消尽理論”てのは知りませんでした。
皆さんありがとうございました。
0024デフォルトの名無しさん
NGNGIEコンポーネント自身の正規の機能であり、こうした動作も了解した上でMicrosoft
とUnisysはライセンスを結んでいるはず。もし制限があるのならば、Microsoft側が
きちんと明示しておくべきで、それがないのであれば問題ないと解釈すべき。
逆にいえばMicrosoftが明示している場合は制限されてもしょうがない、
ということだが、KBのQ193543では、
However, this license does not extend to third-party developers using
Microsoft development products to develop applications. Third-party
developers must have a license from Unisys in the form of a written
agreement.
と明示している。
0025JPEG特許問題
NGNG0026デフォルトの名無しさん
NGNGだからユニシス社的にはって言ってるじゃん
いくら「コピー機を売ってる立場であり〜」などと主張しようが
ユニシス社的には特許権使用者に当たるから無意味
>>23
消尽理論の記事は「そういう理論が世の中に存在する」だけであって
だから特許料を払わなくても訴えられないということにはならんだろ
ユニシス社のある米国でなく日本の、弁護士でなく一弁理士の発言を
支持するのは一向に構わんが相応のリスクを負うことにはなる
>>22
素直に GetFullPathName() 使った方が良いんじゃない?
0027デフォルトの名無しさん
NGNG数バイトだけチェックしてGIFだったら無視すれば。
0028JPEG特許問題
NGNGラジャ サンクス
うーん。GIFって拡張子だけ排除しよ。
それ以上の努力が必要?
なら鬱。
JPEG特許問題でもっと鬱。
もはや板ずれ。スマソ 無意味じゃないけど。
0029デフォルトの名無しさん
NGNGそれはインストーラに MSIを使ってるやつだけでしょう。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
の各キーの "DisplayName"と "UninstallString" を見てなんとかする
しかないんじゃないの?
0030デフォルトの名無しさん
NGNGコンソールが接続されてないとGenerateConsoleCtrlEventは
使えないんだっけ?
0031デフォルトの名無しさん
NGNGGetFullPathName()をどのように使うのですか?
これってカレントディレクトリをくっつけるんですよね?
0032デフォルトの名無しさん
NGNG0033.
NGNG(;´Д`) ハゲシクドウイ。
0034デフォルトの名無しさん
NGNGサンクス。その方法で逝っときます。
0035デフォルトの名無しさん
NGNGそれぞれスレが立っているから、使い終わってからにしてほしいけども。
ユニシス社のGIF問題についてマターリ語るスレ
http://pc3.2ch.net/test/read.cgi/tech/1012141575/
JPEG特許問題
http://pc3.2ch.net/test/read.cgi/tech/1027428839/
0036デフォルトの名無しさん
NGNGあれはどうやれば実現できるのでしょうか?
ChangeDisplaySettingsで画面の解像度を変更することはできたのですが、
クライアント領域が画面を覆うようにはなりませんでした。
MoveWindowを使っているのかとも思いましたが、それだとマウスカーソルを
画面上部に持っていってもメニューが表示されません。
どなたか教えてください。
0037JPEG特許問題
NGNG面倒でもヘッダを見て判定しようと思ったんですが、ファイルの先頭に
"GIF"って書いてたらGIFファイルだと判定しても可ですか?
"GIF"って書かれたテキストにも引っかかりますが、そんな鬱な
テキストも滅却。
0038デフォルトの名無しさん
NGNGChangeDisplaySettingsで一時的に画面の解像度を変えるのはご法度。
どんな解像度でも動くようにするか素直にDirectX使え。
0039デフォルトの名無しさん
NGNGCDS_UPDATEREGISTRYとかわざわざフラグとして存在しないと思うのですが。
嘘ではないけど何か重要な説明をはしょったりしていませんか?
0040デフォルトの名無しさん
NGNG枠線なしにしてウインドウのサイズを画面と同じにして
一番上に表示
ではいけないの?
0041デフォルトの名無しさん
NGNGすべてデコードしてみて成功したらGIFファイルであるとみなす。
100%誤判定はないが判定した時点ですでに特許に抵触してるという罠
0042デフォルトの名無しさん
NGNGウィンドウスタイルをWS_POPUPにして、
クライアント領域が画面全体を覆うように、ウィンドウの位置・サイズを
変更してみたのですが、そうするとメニューが使用できませんでした。
(メニューは画面外に位置)
ゲームではよく、普段メニューは表示されていなくても、
マウスカーソルを画面上部に持っていくと、メニューが現れますよね?
ああいう風にしてみたいと思ったのですが。
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGそりゃそのままじゃ使えないでしょ。
WM_MOUSEMOVEを捕まえて、ウインドウ上部(つまりこの場合は画面上部)
にきたらメニュー表示するようにすればいいのでは?
004540=44
NGNGウインドウごと動かすと、ウインドウの中身も動いちゃうので、
メインウインドウはメニューなしにして、
メニューだけのウインドウを別に持つのがいいかも。
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNGなるほど。ありがとうございます。
その方法で試してみます。
0048デフォルトの名無しさん
NGNG嘘だと思うなら、やってみれば。
確かに解像度は変えられるが、戻ったときに「うげ」となるから。
0049デフォルトの名無しさん
NGNGhttp://home7.highway.ne.jp/nomura_y/prog000.htm
0050デフォルトの名無しさん
NGNG各ウィンドウの位置・サイズがおかしくなるみたいですね。
ちなみにうちの98SEの場合は問題ありません。
0051デフォルトの名無しさん
NGNGだからCDS_FULLSCREENがあるんだろ
環境次第だというならうちのWin2kではDirectX使っても
ウィンドウが勝手に移動しますが何か?
0052デフォルトの名無しさん
NGNG> うちのWin2kではDirectX使ってもウィンドウが勝手に移動しますが
後始末はしっかりやってる? 俺の環境でも、後始末のタイミング次第で
ウィンドウサイズが復元されない場合があった。
0053デフォルトの名無しさん
NGNGDependency Walkerで見る限りでは明らかにChangeDisplaySettings
使ってるのにWin2kでもウィンドウサイズおかしくなったりしないんだけど
0054デフォルトの名無しさん
NGNGオーナー描画のコンボボックス(ドロップダウン)を作ったのですが、
リストから選択すると、テキストボックスに変な文字列が表示されます。
恐らくコンボボックスがテキストだと思ってアイテムデータのアドレスを
テキストボックスに渡しているのだと思うのですが、
CBS_HASSTRING をつけると WM_COMPAREITEM 飛んでこないし、
何かいい方法はないでしょうか?
というかそもそも作り方間違ってます?
0055デフォルトの名無しさん
NGNG005654
NGNGうーん、できればリアルタイムにソートしたいんですよね。
表示のたびに挿入し直しは無駄が多いような気がするので。
でも何となく雰囲気的に無理っぽい感じですね。
とりあえずソートしつつ挿入という方式でやろうと思いますが、
もしいい方法があったら引き続き情報お待ちしておりますので
よろしくお願いします。
0057デフォルトの名無しさん
NGNG(ただし、挿入ではなく上書きを使ったけどネ)
0058デフォルトの名無しさん
NGNGかなりレベルの低い質問で恐縮なのですが
ウインドウの背景を青にして
そのウインドウにTEXTOUT関数で文字を出力すると
文字が白い四角の中に表示されてしまいます。
どうすれば青い背景の上に文字を表示できるでしょうか?
よろしかったらお教えください。
0059デフォルトの名無しさん
NGNGSetBkMode( hDC, TRANSPARENT );
0060デフォルトの名無しさん
NGNGなるほど、TRANSPARENTっていう指定が
背景をそのまま残すっていう指定になるんですね。
参考になりました。ありがとうございました。
0061デフォルトの名無しさん
NGNG(エクスプローラで名前の変更で使うみたいな)
エクセルみたいに軽快にEditを使いたいのですが
どうすればいいんでしょうか?
0062デフォルトの名無しさん
NGNGの逆で
パスからIDListに変換するのに
使用するAPIって存在しますか?
あるなら教えていただきたいのですが。
IDListについていまいちきちんと理解していないので、
見当外れなら指摘してもらえると助かります。
よろしくでお願いします。
0063デフォルトの名無しさん
NGNGするにはどうしたらよいのでしょうか?
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNG006663
NGNG表現が曖昧ですいません。
考え直してみたところ、判断したいのはダイアログではなくて
ウィンドウのサイズ変更ができないアプリであり、これはウィンドウスタイルに
WS_THICKFRAMEが含まれているかどうかを判定することにより解決しました。
0067デフォルトの名無しさん
NGNG単純に、
WNDCLASSEX wcex;
wcex.lpfnWndProc = (WNDPROC)(this->WndProc);
とするとコンパイルエラーになってしまいます。(型変換できないと言われる)
(static関数にすればコンパイルできますが、thisを参照できないので
困ってしまいます)
0068デフォルトの名無しさん
NGNGSetProp()でウィンドウハンドルにthisを登録すれば何とか使えます
WM_CREATEの時点では使えませんけどね
006968
NGNG捕捉、
http://techtips.belution.com/ja/vc/0009/
↑に詳しくのってた
0070デフォルトの名無しさん
NGNGこれでうまくいきそうです。
紹介いただいたサイトもお気に入りに追加しました。
ありがとうございます。
0071デフォルトの名無しさん
NGNGどこかにソース or 情報ありませんか。
(すれ立てるまでもない質問はここでに同じことを書きましたがスレ違い
でした。すんまそ。)
0072ssssss
NGNG0073ssssss
NGNGデバッガを作りたいということ?
VC++使ってりゃデバッグウインドウにそのまま表示されるけど、それじゃだめなの?
0074デフォルトの名無しさん
NGNGその、表示が出るVC++のデバッグウィンドウの部分だけを
独立したソフトとして作りたいのです。
0075デフォルトの名無しさん
NGNGMFCのソースで見たことあるな。
EditWindowを作って、新たに表示させる文字列を
REPLACEなんとかで文章の最後に置き換える形で追加していく。
0076ssssss
NGNGほれ
http://www.anticracking.sk/EliCZ/import/msdn_debug.htm
サンプルビルドしてみたけど、うまくいかん…
がんばってくれ。
0077ssssss
NGNGこれも
http://nps.vnet.ee/ftp/Docs/Asm/IczTutor/tut28.html
0078デフォルトの名無しさん
NGNGありがとうございます。
そろそろ終電だからその資料印刷して帰ろう。。。
007978
NGNGにもヒントがありました。
0080ssssss
NGNG残業中かよ!
0081デフォルトの名無しさん
NGNGIShellFolder::ParseDisplayName()
008262
NGNGありがとうございます。
早速試してみますね。
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG008583
NGNGボタンコントロールとかをサブクラス化した場合はサブクラス化ルーチンにWM_COMMANDが飛んでくるのにと思ってました。
激しく勘違い。何をサブクラス化してもWM_COMMANDは来ないのですね。
ところで、なんでサブクラス化ルーチンにWM_COMMANDが来ないのでしょう?
サブクラス化の意味が違う?
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNGその部分を別にリンクする事で可能になります。
世の中にはDelphiとか そういう機能を内在した言語もあります
0088デフォルトの名無しさん
NGNG何でサブクラス化したいん?
0089デフォルトの名無しさん
NGNG009083
NGNG複数のアプリで同一のツールバーを使う場合、ツールバーをDLL化して、ツールバーが押された時の処理もDLL側で行った方がすっきりして良いかと思いまして。
EXE側もツールバーの事を意識しない方が楽ですし。
0091ssssss
NGNGサブクラス化云々の問題よりも、
そもそもWM_COMMANDはボタンコントロール(のウインドウ)に送られるメッセージではなく、
ボタンが押された結果他のウインドウ(親ウインドウ)に送られるメッセージだからでしょ。
だから、ボタンにWM_COMMANDが送られるわけはない。
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGタイトル名とアイコンを取得しようと思ったのですが、Delphiなどで
作られた一部のアプリケーションは二つのウィンドウが取得されてしまいます。
(例えばクラス名TApplicationとTFormMainの二つ)
しかもこの二つのウィンドウのアイコンが別々です。
そこで、タスクマネージャのように一つだけ取得し、なおかつアプリケーションの
正しいアイコンを取得するにはどうすればよいのでしょうか。
0094デフォルトの名無しさん
NGNGでそれらのウィンドウの関係は?
009583
NGNGサブクラス化って、サブクラス化したウィンドウに関する全てのメッセージを処理するものだと思ってたのです。
WM_COMMANDは仰る通り、考え方が違うのですね。
>>92
主にランチャー機能やタスク切換え機能ですね。
ヘルプ起動とかも行っていますが、これもランチャーに相当すると言えるかも。
あまり深く考えずに親ウィンドウ側でWM_COMMANDを処理してもいいんですが、各EXEに同じようなのを記述するのはいかがなものかと。
その部分だけ別ソースに書き出して工夫するのが良いのでしょうか?
0096デフォルトの名無しさん
NGNGランチャーの機能に関する一連の関数、又はクラスをDLLの方に閉じ込めて
親ウィンドウのProcedureから呼べば?
0097デフォルトの名無しさん
NGNG親から子にメッセージを投げ返せ。
0098デフォルトの名無しさん
NGNG>サブクラス化って、サブクラス化したウィンドウに関する全てのメッセージを処理するものだと思ってたのです。
きみはウィンドウ関数(プロシージャ)というものちゃんとを知らないんだね。
0099デフォルトの名無しさん
NGNGGetWindow(hWnd,GW_OWNER) でゼロを返すほうが真のメインウィンドウ
0100デフォルトの名無しさん
NGNGdbmonのソース。
Platform SDKに入ってると思う
010183
NGNG親で受け取ったWM_COMMANDがツールバーのものなのか判定するというのがいかがなものかと思いまして。
>>97
REFLECT_NOTIFICATIONで解決かと思ったのですが、使い方が分かりません。
しかしプラットフォームSDKの標準ヘッダーでは定義されていないですね。
MSDNを見ていたらATLマクロだということは分かりましたが、SDKなプログラムにREFLECT_NOTIFICATIONのみを実行させることは可能なのでしょうか?
>>98
はい。残念ながら知らないようです。
私の抱える問題を解消出来るような方法は御存じないでしょうか?
■ このスレッドは過去ログ倉庫に格納されています