Sendmessageのパラメータ


台風さん  2004-10-08 15:33:33  No: 85929  IP: [192.*.*.*]

SendMessage等APIに対してのパラメータに付いて色々調べていたのですが
サンプルプログラムによってパラメータの書き方が違います。
SendMessage(hWnd, WM_CLOSE, 0&, 0&)と書かれているサイトもあれば
SendMessage(hWnd, WM_CLOSE, 0, 0)と&が無いところもあります。
また、
SendMessage(hWnd, WM_CLOSE, &0, &0)と書かれていた所もありました。

この&は一体何を意味するのでしょうか?

編集 削除
raki  URL  2004-10-08 15:44:38  No: 85930  IP: [192.*.*.*]

&は長整数型(Long)の型宣言文字です。
このほかにも
%:Integer
!:Sinble
#:Double
@:Currency
などがあります。

編集 削除
java.lang.Nullpo  2004-10-08 16:05:27  No: 85931  IP: [192.*.*.*]

補足ですが、

> SendMessage(hWnd, WM_CLOSE, &0, &0)

ByVal 0& なら、私の好きな NULLポインタ の意味合いになります。

編集 削除
台風さん  2004-10-08 16:11:53  No: 85932  IP: [192.*.*.*]

rakiさん、返答ありがとうございます。
こんな宣言方法があった事を初めて知りました。
&H10もそういった意味なのかな・・・?

0をLong型にする意味がよく分かりません。
また、この型宣言文字を、0の前に付けても後に付けても意味は同じなのでしょうか?

編集 削除
台風さん  2004-10-08 16:27:15  No: 85933  IP: [192.*.*.*]

先ほどの発言を書いてる間に・・。
java.lang.Nullpoさん、返答ありがとうございます。

殆どのVBでのサンプルでは、API宣言でByVALと指定してありましたが
NULLポインタにする意味はあるのでしょうか?
質問ばかりで申し訳ないのですが、検索下手なのか
他に参考になるサイト等が見つからず、気になってしょうがありません。

編集 削除
ABC  2004-10-08 17:36:12  No: 85934  IP: [192.*.*.*]

&H,&O(=&)はそれぞれ16進数、8進数表記の意味です。
検索する前にせっかくMSDNライブラリが附属しているのだから
そこの「コーディングの基礎」あたりを読んでみてはいかがでしょう。

編集 削除
みい  2004-10-08 19:33:43  No: 85935  IP: [192.*.*.*]

> 殆どのVBでのサンプルでは、API宣言でByVALと指定してありましたが
> NULLポインタにする意味はあるのでしょうか?
APIのWM_CLOSEについて調べてみました?
WM_CLOSEメッセージの場合は後ろの2つの引数は使用されません。
普通に0を入れても良いのですが、NULLポインタにすることで「使用されない」
ことを明示しておくと、0を指定しているのか、使用しない引数なのかが
ソースコードを後で見返した時に分かりやすいですよ。

編集 削除