プロが教える店舗&オフィスのセキュリティ対策術

■環境
Windows7
VS2008 SP1
■質問
IP Addressコントロールから値を取得するAPIは
SendMessageでIPM_GETADDRESSで取得できている様なのですが、
私はIpAddressに値が入っていると思っているのですが
どのように、加工して値を取得すればいいでしょうか?
たとえば IP Addressコントロールに
172.16.255.255 となっていてOKボタンを押したら、
どうやってIpAddressから、172.16.255.255を解析しますか?

よくわからないのでご教授願いますm(__)m

else if(LOWORD(wParam)==IDOK_ADDPORT)
{
SendMessage( // returns LRESULT in lResult
hIp, // (HWND) handle to destination control
IPM_GETADDRESS, // (UINT) message ID
wParam, // = 0; not used, must be zero
IpAddress // = (LPARAM)(LPDWORD) pdwAddr;
);

A 回答 (2件)

前回の回答(

http://oshiete1.goo.ne.jp/qa5541150.html )でMSDNの調べ方を示したつもりだったのですが…

http://msdn.microsoft.com/ja-jp/library/bb761378 …
で、第1オクテット、第2オクテット、第3オクテット、第4オクテットを
とりだすためのマクロについてリンクされてますけど、そちらも読まれてはいない。
ということでよろしいですか?
# もっとも、こういう場合はたいていSET時に使用したものと同じデータ形式で返されるのですが。
# データの作成方法と、作成後のデータから個別に取り出すのは微妙に違いがあるかも知れませんが。

>どうやってIpAddressから、172.16.255.255を解析しますか?

srpintf(IpAddrStr, "%d.%d.%d.%d", FIRST_IPADDRESS(*IpAddress), SECOND_IPADDRESS(*IpAddress), THIRD_IPADDRESS(*IpAddress), FOURTH_IPADDRESS(*IpAddress));
で取り出します。
# IpAddrStrは必要なだけのサイズを用意するのは当然ですが。
    • good
    • 0
この回答へのお礼

こんばんは!
すみません 見落としていました。
MSDNのみかたをもっと勉強しますm(__)m
ありがとうございました!

お礼日時:2010/01/04 19:40

>SendMessage( // returns LRESULT in lResult


>hIp, // (HWND) handle to destination control
>IPM_GETADDRESS, // (UINT) message ID
>wParam, // = 0; not used, must be zero
>IpAddress // = (LPARAM)(LPDWORD) pdwAddr;
>);

大丈夫だとは思いますが…
IpAddressはLPDWORD型で有効なアドレス指しているんですよね?
IPM_【S】ETADDRESSで使用したDWORD型ではない…ですよね?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!