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 文字列に初期化したのはこのためです。