DISPID には重複しないようにするためのフォーマットがあるんだけど、
IE なんかでは思いっきり無視してる。
これを守ってるのって VB しか知らない・・・。
| ビット | 値 |
|---|---|
| 0-15 | オフセット。どんな値でもいい。 |
| 16-21 | インターフェイスの派生レベル。 IUnknown = 0 / IDispatch = 1 / デュアルインターフェイス = 2 |
| 22-25 | 予約。常に 0 |
| 26-28 | DISPID の値。ユーザーコードでは通常 0 |
| 29 | メソッドなら 1、違うなら 0 |
| 30-31 | 必ず 01 |
つまり、IDispach なら (IDispachExでも同じだと思う)
| プロパティ | 0x4001xxxx |
| メソッド | 0x6001xxxx |
| 0 | DISPID_VALUE | デフォルトメンバー |
| -1 | DISPID_UNKNOWN | IDispatch.GetIDsOfNames() が名前を認識できない場合返す |
| -3 | DISPID_PROPERTYPUT | プロパティに対して書き込みを行う場合に使用 |
| -4 | DISPID_NEWENUM | コレクションの _NewEnum |
| -5 | DISPID_EVALUATE | オブジェクトの Evaluate |
| -6 | DISPID_CONSTRUCTOR | 予約 |
| -7 | DISPID_DESTRUCTOR | 予約 |
| -8 | DISPID_COLLECT | ? |
こんな感じ
負は全部 MS予約 ってことか...
| -500 | DISPID_AUTOSIZE | bool | コントロールのサイズが変更可能かどうかを示す |
| -501 | DISPID_BACKCOLOR | OLE_COLOR | 背景色 |
| -502 | DISPID_BACKSTYLE | long | 背景のスタイル |
| -503 | DISPID_BORDERCOLOR | OLE_COLOR | 境界の色 |
| -504 | DISPID_BORDERSTYLE | long | 境界のスタイル |
| -505 | DISPID_BORDERWIDTH | long | 境界の幅 |
| -507 | DISPID_DRAWMODE | long | コントロールを描写する際に使うペイントスタイル |
| -508 | DISPID_DRAWSTYLE | long | コントロールを描写する際に使うラインスタイル |
| -509 | DISPID_DRAWWIDTH | long | ライン幅 |
| -510 | DISPID_FILLCOLOR | OLE_COLOR | 塗りつぶす色 |
| -511 | DISPID_FILLSTYLE | long | 塗りつぶす方法 |
| -512 | DISPID_FONT | IFontDisp | テキスト描写に使うフォント |
| -513 | DISPID_FORECOLOR | OLE_COLOR | テキストの色 |
| -514 | DISPID_ENABLED | bool | コントロールの有効(enabled)・無効 |
| -515 | DISPID_HWND | long | コントロールのHWND (Read) |
| -516 | DISPID_TABSTOP | bool | コントロールがタブストップであるか |
| -517 | DISPID_TEXT | BSTR | 表示されるテキスト |
| -518 | DISPID_CAPTION | BSTR | 表示するキャプション |
| -519 | DISPID_BORDERVISIBLE | bool | 境界の表示・非表示 |
| -520 | DISPID_APPEARANCE | short | 外観(3D,2Dなど) |
| -521 | DISPID_MOUSEPOINTER | long | コントロール上で使うカーソル |
| -522 | DISPID_MOUSEICON | IPictureDisp | マウスポインタで使うグラフィック |
| -523 | DISPID_PICTURE | IPictureDisp | コントロールの一部で使うグラフィック |
| -524 | DISPID_VALID | bool | コントロールの有効・無効(invalid) |
| -525 | DISPID_READYSTATE | ||
| -526 | DISPID_LISTINDEX | ||
| -527 | DISPID_SELECTED | ||
| -528 | DISPID_LIST | ||
| -529 | DISPID_COLUMN | ||
| -531 | DISPID_LISTCOUNT | ||
| -532 | DISPID_MULTISELECT | ||
| -533 | DISPID_MAXLENGTH | ||
| -534 | DISPID_PASSWORDCHAR | ||
| -535 | DISPID_SCROLLBARS | ||
| -536 | DISPID_WORDWRAP | ||
| -537 | DISPID_MULTILINE | ||
| -538 | DISPID_NUMBEROFROWS | ||
| -539 | DISPID_NUMBEROFCOLUMNS | ||
| -540 | DISPID_DISPLAYSTYLE | ||
| -541 | DISPID_GROUPNAME | ||
| -542 | DISPID_IMEMODE | ||
| -543 | DISPID_ACCELERATOR | ||
| -544 | DISPID_ENTERKEYBEHAVIOR | ||
| -545 | DISPID_TABKEYBEHAVIOR | ||
| -546 | DISPID_SELTEXT | ||
| -547 | DISPID_SELSTART | ||
| -548 | DISPID_SELLENGTH | ||
| -800 | DISPID_Name | ||
| -801 | DISPID_Delete | ||
| -802 | DISPID_Object | ||
| -803 | DISPID_Parent |
| -701 | DISPID_AMBIENT_BACKCOLOR | ||
| -702 | DISPID_AMBIENT_DISPLAYNAME | ||
| -703 | DISPID_AMBIENT_FONT | ||
| -704 | DISPID_AMBIENT_FORECOLOR | ||
| -705 | DISPID_AMBIENT_LOCALEID | ||
| -706 | DISPID_AMBIENT_MESSAGEREFLECT | ||
| -707 | DISPID_AMBIENT_SCALEUNITS | ||
| -708 | DISPID_AMBIENT_TEXTALIGN | ||
| -709 | DISPID_AMBIENT_USERMODE | ||
| -710 | DISPID_AMBIENT_UIDEAD | ||
| -711 | DISPID_AMBIENT_SHOWGRABHANDLES | ||
| -712 | DISPID_AMBIENT_SHOWHATCHING | ||
| -713 | DISPID_AMBIENT_DISPLAYASDEFAULT | ||
| -714 | DISPID_AMBIENT_SUPPORTSMNEMONICS | ||
| -715 | DISPID_AMBIENT_AUTOCLIP | ||
| -716 | DISPID_AMBIENT_APPEARANCE | ||
| -725 | DISPID_AMBIENT_CODEPAGE | ||
| -726 | DISPID_AMBIENT_PALETTE | ||
| -727 | DISPID_AMBIENT_CHARSET | ||
| -728 | DISPID_AMBIENT_TRANSFERPRIORITY | ||
| -732 | DISPID_AMBIENT_RIGHTTOLEFT | ||
| -733 | DISPID_AMBIENT_TOPTOBOTTOM |
| -550 | DISPID_REFRESH | ||
| -551 | DISPID_DOCLICK | ||
| -552 | DISPID_ABOUTBOX | ||
| -553 | DISPID_ADDITEM | ||
| -554 | DISPID_CLEAR | ||
| -555 | DISPID_REMOVEITEM |
| -600 | DISPID_CLICK | ||
| -601 | DISPID_DBLCLICK | ||
| -602 | DISPID_KEYDOWN | ||
| -603 | DISPID_KEYPRESS | ||
| -604 | DISPID_KEYUP | ||
| -605 | DISPID_MOUSEDOWN | ||
| -606 | DISPID_MOUSEMOVE | ||
| -607 | DISPID_MOUSEUP | ||
| -608 | DISPID_ERROREVENT | ||
| -609 | DISPID_READYSTATECHANGE | ||
| -610 | DISPID_CLICK_VALUE | ||
| -611 | DISPID_RIGHTTOLEFT | ||
| -612 | DISPID_TOPTOBOTTOM | ||
| -613 | DISPID_THIS |