einsy

传说中的湖

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
vml dom
用exescope打开c:\program files\common files\microsoft shares\vgx.dll
有如下tlb

VgxDraw; // Microsoft VML Renderer Object Library

Dispatch _IVgDispObj;
......

Dispatch IVgPath;
GUID={000D0343-0000-0000-C000-000000000046};
  function QueryInterface(riid:^GUID; out ppvObj:^^void);
  function AddRef: UI4;
  function Release: UI4;
  function GetTypeInfoCount(out pctinfo:^UINT);
  function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
  function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
  function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);
  property-get Application: IDispatch;
  property-get Creator: I4;
  property-get value: BSTR;
  property-put value(BSTR);
  property-get parentShape: IDispatch;
  property-get textboxrect: ^IVgFixedRectangleArray;
  property-get limo: ^IVgVector2D;
  property-get v: BSTR;
  property-put v(BSTR);
  property-get segments: ^IVgSegments;
  property-get arrowok: VgTriState;
  property-put arrowok(VgTriState);
  property-get shadowok: VgTriState;
  property-put shadowok(VgTriState);
  property-get extrusionok: VgTriState;
  property-put extrusionok(VgTriState);
  property-get strokeok: VgTriState;
  property-put strokeok(VgTriState);
  property-get textpathok: VgTriState;
  property-put textpathok(VgTriState);
  property-get gradientshapeok: VgTriState;
  property-put gradientshapeok(VgTriState);
  property-get fillok: VgTriState;
  property-put fillok(VgTriState);
  property-get template: BSTR;
  property-put template(BSTR);

....

Dispatch IVgSegments;
GUID={000D0360-0000-0000-C000-000000000046};
  function QueryInterface(riid:^GUID; out ppvObj:^^void);
  function AddRef: UI4;
  function Release: UI4;
  function GetTypeInfoCount(out pctinfo:^UINT);
  function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
  function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
  function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);
  property-get Application: IDispatch;
  property-get Creator: I4;
  property-get parentPath: IDispatch;
  property-get length: INT;
  property-get item(Index:INT): ^IVgSegment;

Dispatch IVgSegment;
GUID={000D0361-0000-0000-C000-000000000046};
  function QueryInterface(riid:^GUID; out ppvObj:^^void);
  function AddRef: UI4;
  function Release: UI4;
  function GetTypeInfoCount(out pctinfo:^UINT);
  function GetTypeInfo(itinfo:UINT; lcid:UI4; out pptinfo:^^void);
  function GetIDsOfNames(riid:^GUID; rgszNames:^^I1; cNames:UINT; lcid:UI4; out rgdispid:^I4);
  function Invoke(dispidMember:I4; riid:^GUID; lcid:UI4; wFlags:UI2; pdispparams:^DISPPARAMS; out pvarResult:^variant; out pexcepinfo:^EXCEPINFO; out puArgErr:^UINT);
  property-get Application: IDispatch;
  property-get Creator: I4;
  property-get parentPath: IDispatch;
  property-get command: VgSegmentCommandType;
  property-get x(Index:INT): R8;
  property-put x(Index:INT; R8);
  property-get y(Index:INT): R8;
  property-put y(Index:INT; R8);
  property-get xParamType(Index:INT): VgSegmentCommandParamType;
  property-put xParamType(Index:INT; VgSegmentCommandParamType);
  property-get yParamType(Index:INT): VgSegmentCommandParamType;
  property-put yParamType(Index:INT; VgSegmentCommandParamType);
  property-get vertexCount: INT;
  property-get vertexGroupCount: INT;
  property-get numberVerticiesPerGroup: INT;
  function addVertexGroup(groupIndexToInsertBefore:INT);
  function removeVertexGroup(groupIndexToDestroy:INT);
  function insertAdjacentSegment(pos:VgSegmentInsertionPosition; Type:VgSegmentCommandType): ^IVgSegment;
  function remove;

.....

 

例如
   <v:shape id="rect01"
   fillcolor="red" strokecolor="red"
   coordorigin="0 0" coordsize="200 200"
   style="position:relative;top:1;left:1;width:20;height:20"
   path="m 1,1 l 1,200, 200,200, 200,1 x e">
   </v:shape>
中的rect01的各顶点索引

rect01.path.segments.item(0).x(0)

rect01.path.segments.item(0).y(0)

 

rect01.path.segments.item(2).x(0)

rect01.path.segments.item(2).y(0)

 

rect01.path.segments.item(2).x(1)

rect01.path.segments.item(2).y(1)

 

rect01.path.segments.item(2).x(2)

rect01.path.segments.item(2).y(2)

posted on 2013-04-02 14:22  传说中的湖  阅读(362)  评论(0)    收藏  举报