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

Win32API 質問箱 Build5

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんたちが答えてくれるかも。
でも、最低限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デフォルトの名無しさんNGNG
早朝からお疲れ様です
0003デフォルトの名無しさんNGNG
>>1
乙
0004デフォルトの名無しさんNGNG
隠しAPI 272個公開じゃー。

MS、和解案準拠で各種の通信プロトコルとAPI公開へ
http://www.zdnet.co.jp/news/0208/06/nebt_01.html

米マイクロソフト、ウィンドウズのコードを一部公開へ
http://www.cnn.co.jp/business/K2002080600088.html
0005デフォルトの名無しさんNGNG
前スレの>>988
> やるなら、
> if (CharPrev(lpszPath, lpszPath+lstrlen(lpszPath)-1) != '\\')
>   lstrcat(lpszPath, TEXT("\\"));
> とかだろ。
これは
if(lstrcmp(CharPrev(lpszPath, lpszPath+lstrlen(lpszPath)-1), TEXT("\\")))
  lstrcat(lpszPath, TEXT("\\"));
ってことかな?
これも「も\\」になるのだけど。
0006デフォルトの名無しさんNGNG
>>4
チョット(・∀・)ワクワク!!
0007デフォルトの名無しさんNGNG
秘密のAPI!?
そんなのがあったのかー。MSならやりそうなこった。
だんだんWindowsで作るのが馬鹿らしくなるな・・・
0008977NGNG
> これは
> if(lstrcmp(CharPrev(lpszPath, lpszPath+lstrlen(lpszPath)-1), TEXT("\\")))
>   lstrcat(lpszPath, TEXT("\\"));
> ってことかな?
if( *CharPrev(lpszPath, lpszPath+lstrlen(lpszPath)) != TEXT('\\') )
  lstrcat(lpszPath, TEXT("\\"));
ってことではなかろうか。
0009デフォルトの名無しさんNGNG
lstrlen使うなら、頭からCharNext適用していったほうがよくねーか?
0010デフォルトの名無しさんNGNG
ここ読むまで API = システムコールだと思ってたから、
ただのライブラリだと知って愕然とした記憶が有るよ。
ファイル列挙するのに FindFileFirst&Next 使えって一体。
Open&ReadDirectory みたいな関数でさっくりと
ディレクトリハンドル開かせろ、読ませろ、とか思ってしまう。
0011デフォルトの名無しさんNGNG
前スレつまんない埋め立て方だな・・・
0012デフォルトの名無しさんNGNG
前スレの >>992
仮に OleLoadPicturePath() 関数を使って画像を展開したとしても
少なくとも GIF に関しては特許料を支払う必要がある(とユニシス社は主張している)
JPEG に付いては知らん
0013デフォルトの名無しさんNGNG
>>10
スレ違いになるけど #include <dirent.h> でどうよ
0014JPEG特許問題NGNG
>>12

たしかに「GIF恐いからGIFだけ排除した」とか書いてる人見ますね。

でも、OleLoadPicturePathが勝手にGIF読んでるだけだから
折れは知らんと言うのはダメなのかな?

折れはJPEGを読みたいだけだ。文句はMSにすれ。なんて。
−−>訴えられたら負けデスか?
0015デフォルトの名無しさんNGNG
>>14
少なくとも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
>>14
これをコピーしてるのはコピー機なんだから著作権料はゼロックス社に請求しろ
と言ってるようなもんだ

少なくともユニシス社的には
0017JPEG特許問題NGNG
>>15
英語じゃよく分かりませんが、確かにMSは味方してくれそうにないですね。w
MS独自開発の画像フォーマットでも作ってもらいましょうか。
WMFは却下。

>>16

いやいや、折れはゼロックスのコピー機を売ってる立場であり、
客が紙幣をコピーしようがこっちの知ったこっちゃ無いって立場の
つもりです。

折れ自身は、JPEGの表示がしたいだけなのだから、マニュアルにJPEG以外は
表示させないで下さいとでも書いておけば、完璧だと思ふ。

いろんな意見モトム。
ちょっと板ずれかも。
0018デフォルトの名無しさんNGNG
コンソールアプリをShellExecuteExで起動させているの。
そやつを終わらせたい場合ってTerminateProcessしかない?
0019デフォルトの名無しさんNGNG
「アプリケーションの追加と削除」の「現在インストールされているプログラム」のリストをWindows2000+VC6で、
APIで取得するにはどうしたらいいでしょうか?名前やインストールフォルダ、日付などを取得したいのですが。。。

MSDNを眺めてみて、あてずっぽうでMsiEnumProducts→MsiGetProductInfoとやってみたら、
何故か一部のリストしか取得できませんでした。なんでこんな中途半端な結果が???
0020デフォルトの名無しさんNGNG
>>17 マニュアルにJPEG以外は表示させないで下さいとでも書いておけば

GIFの場合はユニシスが「その手はダメだよ」と言っていたような覚えがあるけど
ソースが出てこない・・・誰か覚えている人ソースキボンヌ。勘違いだったらゴメンネ
0021デフォルトの名無しさんNGNG
http://www.forest.impress.co.jp/article/2000/03/16/lzw_license.html
>IEコンポーネント利用のソフトは“消尽理論”で対象外
これかかげとけば十分なんじゃないの?
0022デフォルトの名無しさんNGNG
>>8
それで「も」も「表」も上手くいきました。
これで大丈夫・・・ですよね?他に落とし穴は無いかなぁ・・
0023JPEG特許問題NGNG
>>21

これ見る限りでは全然問題無さそうですね。

たしかに、OleLoadPicture関連はMSが特許料を払っているはず
とは思ってましたが、”消尽理論”てのは知りませんでした。

皆さんありがとうございました。
0024デフォルトの名無しさんNGNG
>>21のリンク先より引用
IEコンポーネント自身の正規の機能であり、こうした動作も了解した上で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特許問題NGNG
な。逆に、特許料を払わねばならぬと明示されているのか・・?
0026デフォルトの名無しさんNGNG
>>17
だからユニシス社的にはって言ってるじゃん
いくら「コピー機を売ってる立場であり〜」などと主張しようが
ユニシス社的には特許権使用者に当たるから無意味
>>23
消尽理論の記事は「そういう理論が世の中に存在する」だけであって
だから特許料を払わなくても訴えられないということにはならんだろ
ユニシス社のある米国でなく日本の、弁護士でなく一弁理士の発言を
支持するのは一向に構わんが相応のリスクを負うことにはなる

>>22
素直に GetFullPathName() 使った方が良いんじゃない?
0027デフォルトの名無しさんNGNG
GIFが問題だったら、
数バイトだけチェックしてGIFだったら無視すれば。
0028JPEG特許問題NGNG
>>26殿
ラジャ サンクス

うーん。GIFって拡張子だけ排除しよ。
それ以上の努力が必要?
なら鬱。

JPEG特許問題でもっと鬱。

もはや板ずれ。スマソ 無意味じゃないけど。
0029デフォルトの名無しさんNGNG
>>19
それはインストーラに MSIを使ってるやつだけでしょう。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
の各キーの "DisplayName"と "UninstallString" を見てなんとかする
しかないんじゃないの?
0030デフォルトの名無しさんNGNG
>>18
コンソールが接続されてないとGenerateConsoleCtrlEventは
使えないんだっけ?
0031デフォルトの名無しさんNGNG
>>26
GetFullPathName()をどのように使うのですか?
これってカレントディレクトリをくっつけるんですよね?
0032デフォルトの名無しさんNGNG
著作権総合スレ立てておきましょうか?
0033.NGNG
>ファイル列挙するのに FindFileFirst&Next 使えって一体。

(;´Д`) ハゲシクドウイ。
0034デフォルトの名無しさんNGNG
>>29
サンクス。その方法で逝っときます。
0035デフォルトの名無しさんNGNG
>>32
それぞれスレが立っているから、使い終わってからにしてほしいけども。

ユニシス社の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ファイルだと判定しても可ですか?
"GIF"って書かれたテキストにも引っかかりますが、そんな鬱な
テキストも滅却。
0038デフォルトの名無しさんNGNG
>>36
ChangeDisplaySettingsで一時的に画面の解像度を変えるのはご法度。
どんな解像度でも動くようにするか素直にDirectX使え。
0039デフォルトの名無しさんNGNG
一時的に変えるのがご法度ならCDS_FULLSCREENとか
CDS_UPDATEREGISTRYとかわざわざフラグとして存在しないと思うのですが。
嘘ではないけど何か重要な説明をはしょったりしていませんか?
0040デフォルトの名無しさんNGNG
>>36
枠線なしにしてウインドウのサイズを画面と同じにして
一番上に表示
ではいけないの?
0041デフォルトの名無しさんNGNG
>>37
すべてデコードしてみて成功したらGIFファイルであるとみなす。
100%誤判定はないが判定した時点ですでに特許に抵触してるという罠
0042デフォルトの名無しさんNGNG
>>40
ウィンドウスタイルをWS_POPUPにして、
クライアント領域が画面全体を覆うように、ウィンドウの位置・サイズを
変更してみたのですが、そうするとメニューが使用できませんでした。
(メニューは画面外に位置)

ゲームではよく、普段メニューは表示されていなくても、
マウスカーソルを画面上部に持っていくと、メニューが現れますよね?
ああいう風にしてみたいと思ったのですが。
0043デフォルトの名無しさんNGNG
そのメニューってWindows標準のメニュー?
0044デフォルトの名無しさんNGNG
>>42
そりゃそのままじゃ使えないでしょ。
WM_MOUSEMOVEを捕まえて、ウインドウ上部(つまりこの場合は画面上部)
にきたらメニュー表示するようにすればいいのでは?
004540=44NGNG
補足
ウインドウごと動かすと、ウインドウの中身も動いちゃうので、
メインウインドウはメニューなしにして、
メニューだけのウインドウを別に持つのがいいかも。
■ このスレッドは過去ログ倉庫に格納されています