Win32 API 日本語リファレンス
ホームWeb.MsHtml › IElementBehaviorLayout

IElementBehaviorLayout

COM
IID3050f6ba-98b5-11cf-bb82-00aa00bdce0b継承元IUnknown自前メソッド開始 vtbl3

メソッド 4

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetSize(INT dwFlags, SIZE sizeContent, POINT* pptTranslateBy, POINT* pptTopLeft, SIZE* psizeProposed)
dwFlagsINTinサイズ計算の動作を制御するフラグを指定する。
sizeContentSIZEinコンテンツのサイズを示す SIZE である。
pptTranslateByPOINT*inout適用する平行移動量を受け取る POINT へのポインタである。
pptTopLeftPOINT*inout要素の左上位置を受け取る POINT へのポインタである。
psizeProposedSIZE*inout提案されるサイズを受け取る SIZE へのポインタである。
vtbl 4 HRESULT GetLayoutInfo(INT* plLayoutInfo)
plLayoutInfoINT*outレイアウト情報を示すフラグを受け取る INT へのポインタである。
vtbl 5 HRESULT GetPosition(INT lFlags, POINT* pptTopLeft)
lFlagsINTin位置取得の動作を制御するフラグを指定する。
pptTopLeftPOINT*inout要素の左上位置を受け取る POINT へのポインタである。
vtbl 6 HRESULT MapSize(SIZE* psizeIn, RECT* prcOut)
psizeInSIZE*in変換元のサイズを示す SIZE へのポインタである。
prcOutRECT*out変換後の矩形を受け取る RECT へのポインタである。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IElementBehaviorLayout "{3050F6BA-98B5-11CF-BB82-00AA00BDCE0B}"
#usecom global IElementBehaviorLayout IID_IElementBehaviorLayout "{}"
#comfunc global IElementBehaviorLayout_GetSize        3 int,int,var,var,var
#comfunc global IElementBehaviorLayout_GetLayoutInfo  4 var
#comfunc global IElementBehaviorLayout_GetPosition    5 int,var
#comfunc global IElementBehaviorLayout_MapSize        6 var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。