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
0450デフォルトの名無しさん
NGNGそれでいいなら漏れのPCもうだめぽ(´д⊂
0451デフォルトの名無しさん
NGNGhfile = CreateFile("aa.bmp", GENERIC_WRITE, FILE_SHARE_WRITE,
NULL,CREATE_ALWAYS, 0, NULL);
とすると aa.bmp が全く指定した覚えのないディレクトリ内に作成されてしまう
んですが,原因はなんでしょうか.
途中で PaintDesktop() とかしてるんでカレントが変わってしまってるってこと?
0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG0454デフォルトの名無しさん
NGNGofn.lpstrFilter = "BMP files(*.bmp)\0*.bmp\0\0";
同時に jpg も表示するにはどう書けばええんですか?
(*.bmp,*.jpg) とか色々試したがだめや
0455デフォルトの名無しさん
NGNG0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG#include<windows.h>
LRESULT CALLBACK WindowProc(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR CmdLine,int CmdShow)
{HWND hwnd;MSG msg;WNDCLASS wc;
wc.style=0;wc.lpfnWndProc=WindowProc;wc.cbClsExtra=0;wc.cbWndExtra=0;
wc.hInstance=hInstance;wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wc.hCursor=LoadCursor(NULL,IDC_ARROW);wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName=NULL;wc.lpszClassName="Hello";
if(RegisterClass(&wc)==0)return 0;
hwnd=CreateWindow("Hello","Hello World",WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,NULL,(HMENU)NULL,hInstance,0);
if(hwnd==NULL)return 0;ShowWindow(hwnd,CmdShow);UpdateWindow(hwnd);
while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}
return msg.wParam;}
LRESULT CALLBACK WindowProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{switch(message){case WM_DESTROY:PostQuitMessage(0);return 0;}
return DefWindowProc(hwnd,message,wparam,lparam);}
こんな俺はセンス内でしょうか
0459デフォルトの名無しさん
NGNG原因がありえますかね.SystemParametersInfo の返り値は毎回0です.エラー
#include "stdafx.h"
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow )
{SystemParametersInfo( SPI_SETDESKWALLPAPER, 0, "森.bmp", SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE );
return 0;}
0460デフォルトの名無しさん
NGNGアクティブディスクトップを設定しても解除しても
上のプログラムは駄目.
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG画像を表示させるにはどうやればよいですか?
0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNGネタうざい
0465壁紙変わらん
NGNGSystemParametersInfo( SPI_SETDESKWALLPAPER, 0,s , SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE );
としたら成功でした.
lpszFileName,ってのは即文字列じゃだめなのか.
CreateFileMapping + MapViewOfFile でメモリにマッピングして
自力の loop で改行探せば?
0467デフォルトの名無しさん
NGNGこのメッセージは16進数でいうといくつですか?
教えてください。
0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNGなぜかwinuser.hをインクルードしても定義されていませんってでるんですよね。
windows.hをインクルードしてもたしか自動的にインクルードされるような
気もするんですが。
気のせいだったらすみません。
とりあえず自分でdefineしてみることにします。
0470デフォルトの名無しさん
NGNG0471デフォルトの名無しさん
NGNGOFFICEアシスタントだけ、キャプチャーできません。
CreateCompatibleBitmapとBitBltを使用しています。
どなたか、お知恵をお貸しください。
環境はVC 6.0、Windows2000です。
0472467
NGNGあ、そうですね。
_WIN32_WINDOWSの大きさを0x400以上に定義してみようかと思います。
ありがとうございました。
0473デフォルトの名無しさん
NGNGセットするほうのリージョンは毎回新しいの生成してる?
0474デフォルトの名無しさん
NGNG最初に作って使いまわしてる・・・(;´Д`)
0475デフォルトの名無しさん
NGNGそこらへんにころがっているフリーのキャプチャソフトでもとれないし。
もしかしてマウスカーソル?
0476デフォルトの名無しさん
NGNGhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnapiover/html/api-overview.asp
ZDNet(http://www.zdnet.co.jp/news/0208/29/ne00_msapi.html)によると、
>WindowsがWindows Server製品と連係する際に使用する113種の通信プロトコル
らすぃ。
ぱっと見たところ、Shell Functionsが一番数が多いみたいだ。
なんか面白そうな奴見つけたら紹介して( ゚д゚)ホスィ…
0477デフォルトの名無しさん
NGNG>WindowsがWindows Server製品と連係する際に使用する113種の通信プロトコル
とは別物だな。
0478デフォルトの名無しさん
NGNG0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNGこのAPIでワークグループを変更できるみたいなんですが
使い方がさっぱりです。
できればVB用の使い方を教えてください。
0481デフォルトの名無しさん
NGNG0482480
NGNGPrivate Declare Function NetJoinDomain Lib "netapi32.dll"_
(ByVal lpServer As String,_
ByVal lpDomain As String_
ByVal lpAccountOU As String,_
ByVal lpAccount As String,_
ByVal lpPassword As String,_
ByVal fJoinOptions As Long_
) As String
こうやったんですが、原文はOPTIONALな部分も
VBではoptionalを指定しちゃうとその後ろの引数を全部optionalに
しなきゃいけないのでoptionalは外しました。
0483デフォルトの名無しさん
NGNGどれが隠しだったの?
0484デフォルトの名無しさん
NGNG今回は隠しAPIであるSHCreateDirectoryを新たに公開した。
・・・ってあんまり得した気がしない。
0485デフォルトの名無しさん
NGNGあんまり見当たらない・・・
0486デフォルトの名無しさん
NGNG0487デフォルトの名無しさん
NGNG使ってみたんですけれど、取り込んだデータ色数はディスプレ
イの設定に依存してしまいます。
get_HandleからDIBSECTIONを参照する方法と、Renderを用いる
方法の2とおり試してみましたが、ダメでした。
やはりライブラリですか?
何か良い方法がありましたら教えてください。
0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNGそういう方法も面白そうです、できればWindows APIで…
0490デフォルトの名無しさん
NGNGWM_USERCHANGED なんてあれば楽なんですが。
0491デフォルトの名無しさん
NGNG質問するときは、あげてもいいんじゃない?
というわけで、代わりにage
0492デフォルトの名無しさん
NGNGDirectShow
0493デフォルトの名無しさん
NGNGたまぁに右側に一個だけ離れているソフトがありますけど、
あれはどうやっているのでしょうか?
0494デフォルトの名無しさん
NGNG0495493
NGNG自己解決しました。
ヘルプってか〜。
0496デフォルトの名無しさん
NGNG>>12
0497487
NGNGDirectShowですか。情報不足なので調べてみます。
>>496
GifもJpegもやっかいなことになってしまいましたねぇ。
今回は個人用ということで、見逃してください…。
0498デフォルトの名無しさん
NGNGエラーダイアログが表示されます。
LoadLibraryが失敗したときにはNULLが返ってくるだけで良いので、
このダイアログを表示させないようにするにはどうすればよいのでしょうか?
0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNGarigatou
0501デフォルトの名無しさん
NGNGCAPTUREBLT
0502デフォルトの名無しさん
NGNGプロキシの設定だけはIEを参照して実際の接続はWinsockで
やるような場合、今までは自動構成スクリプトに対応するのが
面倒だったけどWinInetの新たに公開された関数で楽になった。
あとSwitchToThisWindow使うとフォアグラウンドロックを回避
できるのかな? (未確認)
0503デフォルトの名無しさん
NGNGどの関数?
0504デフォルトの名無しさん
NGNG(に限らず他にもあるかもしれないけど未確認)は、
API自体は既出なわけだけど、それはAPIに隠し機能があったとか
ドキュメントに隠し事項があったとかそういうことけ?
0505デフォルトの名無しさん
NGNG該当ページをWinInetで検索すればすぐ見つかるだろ…
まあいいや
DetectAutoProxyUrl
InternetGetProxyInfo
公開前からDependency WalkerでWININET.DLLを覗いて
「MSずるいよなー」とか思ってたから漏れ的には一番うれしい
0506デフォルトの名無しさん
NGNGFreeResourceとかFillMemoryに至っては何が新しいのか
さっぱり分からないです。
あとMultimediaのところにSndPlaySound(大文字)ってあるけど
これはsndPlaySound(小文字)とは違うの? なんかクリックすると
sndPlaySound(小文字)の説明が出てくるんだけど。
0507デフォルトの名無しさん
NGNGSDKは有償でなかった?
0508デフォルトの名無しさん
NGNG過去ログ見てないんか>>476
0509デフォルトの名無しさん
NGNGはじめて公開した関数はほとんどパラメータの説明しかないし
FreeResourceは現在return 0;だけの実装なのにいかにも
いろいろやってそうな説明してるし(たぶん昔のSDKの解説切り
貼りしたんだろう)NtCreateFileに至ってはZwCreateFileの
置換し忘れがあるし(w
0510デフォルトの名無しさん
NGNGきっとこんな感じでリスト作ったはず。
0511デフォルトの名無しさん
NGNG将来無くなるかもしれんと断りのあるもの、明らかに単なる計算ルーチンなもの
も結構あってなんだかつまらんです
0512デフォルトの名無しさん
NGNG今回は仕方なく公開しただけで
問題はサードパーティーには「将来なくなるから使うな」とか何とか
言っておきながら「Microsoftのミドルウェア」は
しっかり使ってるというダブルスタンダード
0513デフォルトの名無しさん
NGNGIsUserAdminとかInternetGetProxyInfoは手間がかなり違う。
自分でダイアログ用意すれば作れるからって
コモンダイアログがいらないってことにはならないでしょ
0514デフォルトの名無しさん
NGNGそういう「これ以外に手段がありません」というやつだけ抜き出してほしかったり
0515デフォルトの名無しさん
NGNGSingle-Threaded Apartments
いきなり挫折しますた(w
0516デフォルトの名無しさん
NGNGというものを挙げてみます。
__WSAFDIsSet - 直接使わずFD_ISSETマクロで使う。
RtlConvertSidToUnicodeString - ConvertStringSidToSidを使う。
IsNetDrive - GetDriveTypeとWNetGetConnectionで代替できる。
OpenRegStream - SHOpenRegStream*を使う。
PathGetShortPath - GetShortPathNameでよい。
SHCLSIDFromString - CLDIDFromStringを使う。
SHCoCreateInstance - CoCreateInstanceを使う。
SHCreateDirectory - SHCreateDirectoryExで代替できる。
FreeResource - Win32では何もしないので不要。
RtlCharToInteger - strtolやwcstolでよい。
RtlUnicodeToMultiByteSize - WideCharToMultiByteでよい。
ExtDeviceMode - 16ビット時代の遺物。DocumentPropertiesを使う。
RtlCompareMemory - memcmpでよい。
RtlExtendedIntegerMultiply - __int64による乗算でよい。
RtlExtendedLargeIntegerDivide - __int64による除算でよい。
RtlUniform - CryptGenRandomで代替できる。
RtlUnwind - 直接使わず構造化例外処理を使う。
RtlIsNameLegalDOS8Dot3 - XP以降ならCheckNameLegalDOS8Dot3を使う。
IsBadHugeReadPtr - 過去の遺物。IsBadReadPtrを使う。
IsBadHugeWriteOtr - 過去の遺物。IsBadWritePtrを使う。
NtQuerySystemTime - GetSystemTimeAsFileTimeを使う。
RtlLocalTimeToSystemTime - LocalFileTimeToFileTimeを使う。
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG改行される部分のポインタを取得したいのですが
よい方法はないでしょうか?
DrawText関数は描画した高さを返すので困っています。
0519518
NGNG0520デフォルトの名無しさん
NGNGBSD socketでどうなのかは知らないけどWinsockではマクロだよ
winsock.h見てみ
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNGよくわからんがGetCurrentPositionExでも試してみたら
0524デフォルトの名無しさん
NGNG最後の3文字良いね。
0525デフォルトの名無しさん
NGNG○WNDCLASSEX
じゃなかったっけ?
0526デフォルトの名無しさん
NGNGEWX_FORCEIFHUNG
のフラグつけたらどうなるんでしょうか?
想像では
EWX_FORCEフラグに置き換えられるのではないかと思います。
確認できる手段がなくて困っているのですが、
ご存知の方、教えてもらえませんか?
0527デフォルトの名無しさん
NGNG最後の3文字良いね。
0528526
NGNGなんでこのタイミングで書き込んでしまったのか
自問自答。。
0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1023359282/605-
RASPPPoEをインストールして調べてみたところ、
szDeviceTypeはRASDT_Isdnになるようです。
ここでいうISDNとはISDNボードを使った1.5Mの接続とかの
ことで、64KのふつうのISDNはRASDT_Modemになるので
RASDT_Isdnもブロードバンド扱いすればいいかと。
0531デフォルトの名無しさん
NGNGCOMポートになりすまさない内蔵ISDNとか使うとRASDT_Isdnになるよ
0532デフォルトの名無しさん
NGNGこれはどう解釈したらいいのでしょうか?
int test()
{
return ::GetLastError() != ERROR_SUCCESS;
}
::GetLastError() != ERROR_SUCCESS;が
真なら1を返し、そうでなければ0を返すというだけのものでしょうか?
test()がintの戻り値を返すようにサンプルではなっているので
気になっています。
intなのに1 or 0しか返さないのでしょうか?
それともなんらかの場合、GetLastError()の値を返したりしますか?
0533デフォルトの名無しさん
NGNGMSDNの「return」見てみな。
ちなみに「真なら1」とは限らない。
0534デフォルトの名無しさん
NGNG条件演算子は真なら1、偽なら0を返す。
これは言語で規定されている。
スレ違いだけどな。
0535デフォルトの名無しさん
NGNGそれをいったら BOOL 自体 int だしな
windef.h 見てみ
0536532
NGNG見てみましたが、特にこの問題と関係ないように思えたのですが。。
>535
それはわかってますが、
0 or 1しか返さない仕様の関数に
int型の戻り値を要求するのがおかしいな、と思いまして。
0 or 1ならBOOL型で十分じゃないかと。
>534
つまり
GetLastError() != ERROR_SUCCESS
の条件式が先に 0 or 1に評価され、
それがreturn 0 or 1に
なるという流れでよろしいでしょうか?
つまり、
GetLastError() != ERROR_SUCCESS
は条件式なので、0or1の値しかなりえないと。
あってます?
0537デフォルトの名無しさん
NGNGbool型ならじゃなくて、条件演算子ならってかいてあるじゃん
まぁ、規定されてるのはC++だけだが。
0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNGCならint型の1/0になる。
BOOLは単にintをtypedefしたもの。
で、API関係の解説はCでも使えるように大抵Cで書いてあるんじゃないのかな。
0540デフォルトの名無しさん
NGNGあるウインドウハンドルの
親ウインドウのハンドルを取得するAPIってありますでしょうか?
良かったら教えてください。
0541デフォルトの名無しさん
NGNGあるウインドウの親ウインドウのハンドルを
そのウインドウのハンドルから取得できるようなAPIは無いでしょうか
ですね。
よろしくお願いします。
0542デフォルトの名無しさん
NGNGGetParent
0543デフォルトの名無しさん
NGNGありがとうございました。
0544デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNGにある APIについてなんですが、
>対応情報
> Windows NT/2000:Windows NT 3.1 以降
> Windows 95/98:Windows 95 以降。Windows 95 用の再配布可能なファイルとして利用可能。
> Windows CE:対応していません
「再配布可能なファイルとして利用可能」とは、どういうことですか??
この APIをコールする実行ファイルを、一般に配布して良いということですか?
0547デフォルトの名無しさん
NGNG具体的にどのAPIなんだYO
0548デフォルトの名無しさん
NGNGIE5に含まれるとか、そんな意味だろ。この場合、IE5は再配布可能だから、Win95
でも利用可能ということになる。
よく、対応情報の回りを読んでみそ。
■ このスレッドは過去ログ倉庫に格納されています