ActiveX コントロールは、DotNet フレームワークとそのコントロールを考慮して、最新バージョンの Microsoft Windows オペレーティング システムで非推奨となりました。
MAXScript では引き続き ActiveX コントロールがサポートされますが、これらは MAXScript にアクセス可能なシステムにインストールおよび登録する必要があります。
ActiveX コントロールの代わりに、MAXScript では、3ds Max 9 以降において DotNet コントロールがサポートされます。
次の調査関数を使用すると、利用可能な ActiveX コントロールとそのメソッド、イベント、およびプロパティの一覧を取得できます。
showAllActiveXControls [ to:<stream> ]
ActiveX コントロールのリストを、システムに登録されている progID および classID とともに出力します。
showMethods<axControl> [ to:<stream> ] [ showHidden:<false>]
コントロール上で呼び出すことができるメソッドとその引数のリストを出力します。
showEvents <axControl> [ to:<stream> ]
コントロールから送信されるイベントとその引数のリストを出力します。
showProperties <axControl> [ to:<stream> ] [showHidden:<false>]
コントロールによってサポートされるプロパティとそのタイプのリストを出力します。一部のプロパティには、読み込み専用とマークされています。
getPropNames <axControl> [showHidden:<false>]
コントロールによってサポートされるプロパティの配列を返します。
ここで。
to:<stream>
出力文字列ストリームです。
showHidden:<boolean>
非表示プロパティおよびメソッドを列挙するかどうかを制御します。既定値は false です。
例:
rollout test "Test" ( activeXControl lv "MSComctlLib.ListViewCtrl" on test open do ( format "PROPERTIES:\n" showProperties lv format "METHODS:\n" showMethods lv format "EVENTS:\n" showEvents lv ) ) createDialog test
結果
Rollout:test PROPERTIES: .Arrange : ListArrangeConstants( #lvwNone | #lvwAutoLeft | #lvwAutoTop ) .ColumnHeaders : IColumnHeaders .DropHighlight : IListItem .DropHighlight : undefined, read-only .HideColumnHeaders : boolean .HideSelection : boolean .Icons : IVBDataObject .Icons : undefined, read-only .ListItems : IListItems .LabelEdit : ListLabelEditConstants( #lvwAutomatic | #lvwManual ) .LabelWrap : boolean .MouseIcon : IPictureDisp .MousePointer : MousePointerConstants( #ccDefault | #ccArrow | #ccCross | #ccIBeam | #ccIcon | #ccSize | #ccSizeNESW | #ccSizeNS | #ccSizeNWSE | #ccSizeEW | #ccUpArrow | #ccHourglass | #ccNoDrop | #ccArrowHourglass | #ccArrowQuestion | #ccSizeAll | #ccCustom ) .MultiSelect : boolean .SelectedItem : IListItem .SelectedItem : undefined, read-only .SmallIcons : IVBDataObject .SmallIcons : undefined, read-only .Sorted : boolean .SortKey : integer .SortOrder : ListSortOrderConstants( #lvwAscending | #lvwDescending ) .View : ListViewConstants( #lvwIcon | #lvwSmallIcon | #lvwList | #lvwReport ) .OLEDragMode : OLEDragConstants( #ccOLEDragManual | #ccOLEDragAutomatic ) .OLEDropMode : OLEDropConstants( #ccOLEDropNone | #ccOLEDropManual ) .Appearance : AppearanceConstants( #ccFlat | #cc3D ) .BackColor : OLE_COLOR .BorderStyle : BorderStyleConstants( #ccNone | #ccFixedSingle ) .Enabled : boolean .Font : IFontDisp .ForeColor : OLE_COLOR .hWnd : OLE_HANDLE .AllowColumnReorder : boolean .Checkboxes : boolean .FlatScrollBar : boolean .FullRowSelect : boolean .GridLines : boolean .HotTracking : boolean .HoverSelection : boolean .Picture : IPictureDisp .PictureAlignment : ListPictureAlignmentConstants( #lvwTopLeft | #lvwTopRight | #lvwBottomLeft | #lvwBottomRight | #lvwCenter | #lvwTile ) .ColumnHeaderIcons : IVBDataObject .ColumnHeaderIcons : undefined, read-only .TextBackground : ListTextBackgroundConstants( #lvwTransparent | #lvwOpaque ) METHODS: .FindItem sz:string Where:undefined Index:undefined fPartial:undefined .GetFirstVisible() .HitTest x:float y:float .StartLabelEdit() .OLEDrag() .Refresh() EVENTS: on <control_name> BeforeLabelEdit Cancel:integer do ( ... ) on <control_name> AfterLabelEdit Cancel:integer NewString:string do ( ... ) on <control_name> ColumnClick ColumnHeader:ColumnHeader do ( ... ) on <control_name> ItemClick Item:ListItem do ( ... ) on <control_name> KeyDown KeyCode:integer Shift:integer do ( ... ) on <control_name> KeyUp KeyCode:integer Shift:integer do ( ... ) on <control_name> KeyPress KeyAscii:integer do ( ... ) on <control_name> MouseDown Button:integer Shift:integer x:OLE_XPOS_PIXELS y:OLE_YPOS_PIXELS do ( ... ) on <control_name> MouseMove Button:integer Shift:integer x:OLE_XPOS_PIXELS y:OLE_YPOS_PIXELS do ( ... ) on <control_name> MouseUp Button:integer Shift:integer x:OLE_XPOS_PIXELS y:OLE_YPOS_PIXELS do ( ... ) on <control_name> Click do ( ... ) on <control_name> DblClick do ( ... ) on <control_name> OLEStartDrag &Data:DataObject &AllowedEffects:integer do ( ... ) on <control_name> OLEGiveFeedback &Effect:integer &DefaultCursors:boolean do ( ... ) on <control_name> OLESetData &Data:DataObject &DataFormat:integer do ( ... ) on <control_name> OLECompleteDrag &Effect:integer do ( ... ) on <control_name> OLEDragOver &Data:DataObject &Effect:integer &Button:integer &Shift:integer &x:float &y:float &State:integer do ( ... ) on <control_name> OLEDragDrop &Data:DataObject &Effect:integer &Button:integer &Shift:integer &x:float &y:float do ( ... ) on <control_name> ItemCheck Item:ListItem do ( ... ) true OK
サポートされる COM データ型はすべて、適切な MAXScript ラップに変換されます。サポートされるタイプとそのマッピングを次に示します。
undefined - VT_EMPTY
boolean - VT_BOOL
integer - VT_UI1
integer - VT_UI2
integer - VT_UI4
integer - VT_UI8
integer - VT_I1
integer - VT_I2
integer - VT_I4
integer - VT_I8
float - VT_R4
float - VT_R8
string - VT_BSTR
float - VT_CY
date - VT_DATE
error - VT_ERROR
color - VT_COLOR
MSDispatch - VT_DISPATCH
font - VT_FONT
undefined - VT_UNKNOWN
ComArray - VT_SAFEARRAY
ComArray - VT_CARRAY
ComArray - VT_ARRAY
プロパティ セットおよびメソッド呼び出し引数の文字列の処理が有効であれば、安全に実行することができます。
例:
ax.Navigate"http://www.autodesk.com"
ここでは、ax は Microsoft Web ブラウザ コントロールです。
showMethods()
関数を使って表示します。