メソッドとイベントに対する ActiveX の参照引数
注:
ActiveX コントロールは、DotNet フレームワークとそのコントロールを考慮して、最新バージョンの Microsoft Windows オペレーティング システムで非推奨となりました。
MAXScript では引き続き ActiveX コントロールがサポートされますが、これらは MAXScript にアクセス可能なシステムにインストールおよび登録する必要があります。
ActiveX コントロールの代わりに、MAXScript では、3ds Max 9 以降において DotNet コントロールがサポートされます。
次の例は、使用する ActiveX コントロールがシステムにインストールされている場合に有効です。
3ds Max 5.1 以降、ActiveX によってメソッドとイベントに対する参照引数がサポートされています。
例:
|
rollout winsockTester "Winsock Tester" (
activeXControl axWinsock "{248DD896-BB45-11CF-9ABC-0080C7E7B78D}" align:#left
edittext txt text:"mail.iwaynet.net" offset:[-12, 0] fieldwidth:90
edittext txt2 "Port:" text:"110" offset:[8, -2]
button btn "Connect" width:90 height:16 offset:[0, 2]
button btn2 "Disconnect" width:90 height:16 offset:[0, -2] enabled:false
-- some data has arrived..
on axWinsock DataArrival bytes do
(
format "% bytes received.\n" bytes
local wsckData = "" -- initialize to a string
p = axWinsock.getdata &wsckdata -- by-reference argument
format "Data: %\n" wsckData
)
-- connected to remote host
on axWinsock Connect do
(
format "Connected.\n"
btn2.enabled = true
btn.enabled = false
)
-- connect!
on btn pressed do
(
axWinsock.connect txt.text txt2.text
format "Connecting ...\n"
)
-- disconnect
on btn2 pressed do
(
axWinsock.close()
format "Connection closed.\n"
btn2.enabled = false
btn.enabled = true
)
)
createdialog winsockTester 100 115
|
showMethods および showEvents では、参照引数の前には「&」が付けられます。
例
|
showmethods winsockTester.axWinsock
.Connect RemoteHost:undefined RemotePort:undefined
.Listen()
.Accept requestID:integer
.SendData data:undefined
.GetData &data:undefined type:undefined maxLen:undefined
.PeekData &data:undefined type:undefined maxLen:undefined
.Close()
.Bind LocalPort:undefined LocalIP:undefined
|
GetData と PeekData の「data」引数の値タイプは「unknown」なので、ActiveX コントロールが処理方法を認知している値タイプを渡す必要があります。この場合メソッドは、データが保存できるバッファを必要としており、文字列値の処理方法を認知しています。変数
wsckData を NULL 文字列に初期化したのはこのためです。