home *** CD-ROM | disk | FTP | other *** search
/ Master 95 #1 / MASTER95_1.iso / microsof / vbasic4 / vb4-6.cab / vbextend.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-07-26  |  35.1 KB  |  1,151 lines

  1. /* This header file machine-generated by mktyplib.exe */
  2. /* Interface to type library: VBIDE */
  3.  
  4. #ifndef _VBIDE_H_
  5. #define _VBIDE_H_
  6.  
  7. DEFINE_GUID(LIBID_VBIDE,0xEF404E00L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB);
  8.  
  9. interface FormTemplate;
  10.  
  11. interface SelectedComponents;
  12.  
  13. interface Components;
  14.  
  15. interface Component;
  16.  
  17. interface Properties;
  18.  
  19. interface ControlTemplate;
  20.  
  21. interface ControlTemplates;
  22.  
  23. interface SelectedControlTemplates;
  24.  
  25. interface _ProjectTemplate;
  26.  
  27. interface _MenuLine;
  28.  
  29. interface SubMenu;
  30.  
  31. interface _FileControl;
  32.  
  33. DEFINE_GUID(IID_Application,0xEF404E01L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB);
  34.  
  35. /* Definition of interface: Application */
  36. #undef INTERFACE
  37. #define INTERFACE Application
  38.  
  39. DECLARE_INTERFACE_(Application, IDispatch)
  40. {
  41. #ifndef NO_BASEINTERFACE_FUNCS
  42.  
  43.     /* IUnknown methods */
  44.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  45.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  46.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  47.  
  48.     /* IDispatch methods */
  49.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  50.  
  51.     STDMETHOD(GetTypeInfo)(
  52.       THIS_
  53.       UINT itinfo,
  54.       LCID lcid,
  55.       ITypeInfo FAR* FAR* pptinfo) PURE;
  56.  
  57.     STDMETHOD(GetIDsOfNames)(
  58.       THIS_
  59.       REFIID riid,
  60.       OLECHAR FAR* FAR* rgszNames,
  61.       UINT cNames,
  62.       LCID lcid,
  63.       DISPID FAR* rgdispid) PURE;
  64.  
  65.     STDMETHOD(Invoke)(
  66.       THIS_
  67.       DISPID dispidMember,
  68.       REFIID riid,
  69.       LCID lcid,
  70.       WORD wFlags,
  71.       DISPPARAMS FAR* pdispparams,
  72.       VARIANT FAR* pvarResult,
  73.       EXCEPINFO FAR* pexcepinfo,
  74.       UINT FAR* puArgErr) PURE;
  75. #endif
  76.  
  77.     /* Application methods */
  78.     STDMETHOD(get_Name)(THIS_ BSTR FAR* lpbstrReturn) PURE;
  79.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  80.     STDMETHOD(get_Parent)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  81.     STDMETHOD(get_FullName)(THIS_ BSTR FAR* lpbstrReturn) PURE;
  82.     STDMETHOD(get_LastUsedPath)(THIS_ BSTR FAR* lpbstrReturn) PURE;
  83.     STDMETHOD(put_LastUsedPath)(THIS_ BSTR bstrNewPath) PURE;
  84.     STDMETHOD(get_Version)(THIS_ BSTR FAR* lpbstrReturn) PURE;
  85.     STDMETHOD(get_ActiveProject)(THIS_ _ProjectTemplate FAR* FAR* lppptReturn) PURE;
  86.     STDMETHOD(get_FileControl)(THIS_ _FileControl FAR* FAR* lppfcReturn) PURE;
  87.     STDMETHOD(get_AddInMenu)(THIS_ SubMenu FAR* FAR* lppmReturn) PURE;
  88.     STDMETHOD(LoadProject)(THIS_ BSTR FileName, VARIANT_BOOL ReplaceCurrent, _ProjectTemplate FAR* FAR* lppptReturn) PURE;
  89.     STDMETHOD(get_ReadOnlyMode)(THIS_ short FAR* pReadOnlyMode) PURE;
  90.     STDMETHOD(put_ReadOnlyMode)(THIS_ short ReadOnlyMode) PURE;
  91. };
  92.  
  93. typedef enum vbextFileTypes {
  94.     vbextFileTypeForm = 0,
  95.     vbextFileTypeModule = 1,
  96.     vbextFileTypeClass = 2,
  97.     vbextFileTypeProject = 3,
  98.     vbextFileTypeExe = 4,
  99.     vbextFileTypeFrx = 5,
  100.     vbextFileTypeRes = 6
  101. } vbextFileTypes;
  102.  
  103. typedef enum vbextWrite {
  104.     vbextWriteSuccess = 0,
  105.     vbextWriteCancelled = 1,
  106.     vbextWriteFailed = 2
  107. } vbextWrite;
  108.  
  109. typedef enum vbextAddInRemove {
  110.     vbextAddInRemoveExit = 0,
  111.     vbextAddInRemoveUser = 1
  112. } vbextAddInRemove;
  113.  
  114. DEFINE_GUID(IID__FileControl,0xEF404E08L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB);
  115.  
  116. /* Definition of interface: _FileControl */
  117. #undef INTERFACE
  118. #define INTERFACE _FileControl
  119.  
  120. DECLARE_INTERFACE_(_FileControl, IDispatch)
  121. {
  122. #ifndef NO_BASEINTERFACE_FUNCS
  123.  
  124.     /* IUnknown methods */
  125.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  126.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  127.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  128.  
  129.     /* IDispatch methods */
  130.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  131.  
  132.     STDMETHOD(GetTypeInfo)(
  133.       THIS_
  134.       UINT itinfo,
  135.       LCID lcid,
  136.       ITypeInfo FAR* FAR* pptinfo) PURE;
  137.  
  138.     STDMETHOD(GetIDsOfNames)(
  139.       THIS_
  140.       REFIID riid,
  141.       OLECHAR FAR* FAR* rgszNames,
  142.       UINT cNames,
  143.       LCID lcid,
  144.       DISPID FAR* rgdispid) PURE;
  145.  
  146.     STDMETHOD(Invoke)(
  147.       THIS_
  148.       DISPID dispidMember,
  149.       REFIID riid,
  150.       LCID lcid,
  151.       WORD wFlags,
  152.       DISPPARAMS FAR* pdispparams,
  153.       VARIANT FAR* pvarResult,
  154.       EXCEPINFO FAR* pexcepinfo,
  155.       UINT FAR* puArgErr) PURE;
  156. #endif
  157.  
  158.     /* _FileControl methods */
  159.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  160.     STDMETHOD(get_Parent)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  161.     STDMETHOD(ConnectEvents)(THIS_ IDispatch * pdspSink, long FAR* lplReturn) PURE;
  162.     STDMETHOD(DisconnectEvents)(THIS_ long hConnection) PURE;
  163. };
  164.  
  165. DEFINE_GUID(DIID_FileControlEvents,0xEF404E0AL,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB);
  166.  
  167. /* Definition of dispatch interface: FileControlEvents */
  168. #undef INTERFACE
  169. #define INTERFACE FileControlEvents
  170.  
  171. DECLARE_INTERFACE_(FileControlEvents, IDispatch)
  172. {
  173. #ifndef NO_BASEINTERFACE_FUNCS
  174.  
  175.     /* IUnknown methods */
  176.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  177.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  178.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  179.  
  180.     /* IDispatch methods */
  181.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  182.  
  183.     STDMETHOD(GetTypeInfo)(
  184.       THIS_
  185.       UINT itinfo,
  186.       LCID lcid,
  187.       ITypeInfo FAR* FAR* pptinfo) PURE;
  188.  
  189.     STDMETHOD(GetIDsOfNames)(
  190.       THIS_
  191.       REFIID riid,
  192.       OLECHAR FAR* FAR* rgszNames,
  193.       UINT cNames,
  194.       LCID lcid,
  195.       DISPID FAR* rgdispid) PURE;
  196.  
  197.     STDMETHOD(Invoke)(
  198.       THIS_
  199.       DISPID dispidMember,
  200.       REFIID riid,
  201.       LCID lcid,
  202.       WORD wFlags,
  203.       DISPPARAMS FAR* pdispparams,
  204.       VARIANT FAR* pvarResult,
  205.       EXCEPINFO FAR* pexcepinfo,
  206.       UINT FAR* puArgErr) PURE;
  207. #endif
  208.  
  209.     /* FileControlEvents methods:
  210.     void AfterAddFile(BSTR FileName);
  211.     void AfterChangeFileName(short FileType, BSTR NewName, BSTR OldName);
  212.     void AfterCloseFile(SAFEARRAY FAR* FileNames);
  213.     void AfterWriteFile(BSTR FileName, short Result);
  214.     void AfterRemoveFile(BSTR FileName);
  215.     void BeforeLoadFile(SAFEARRAY FAR* FileNames);
  216.     void DoGetAddFileName(SAFEARRAY FAR* FileNames, VARIANT_BOOL FAR* CancelDefault);
  217.     void DoGetNewFileName(short FileType, BSTR FAR* NewName, BSTR OldName, VARIANT_BOOL FAR* CancelDefault);
  218.     void DoGetOpenProjectName(BSTR FAR* ProjectName, VARIANT_BOOL FAR* CancelDefault);
  219.     void RequestChangeFileName(short FileType, BSTR NewName, BSTR OldName, VARIANT_BOOL FAR* Cancel);
  220.     void RequestWriteFile(BSTR FileName, VARIANT_BOOL FAR* Cancel);
  221.     void AfterNewProject(BSTR ProjectName);
  222.     */
  223. };
  224.  
  225. DEFINE_GUID(CLSID_FileControl,0xEF404E0BL,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB);
  226.  
  227. #ifdef __cplusplus
  228. class FileControl;
  229. #endif
  230.  
  231. DEFINE_GUID(IID_MenuItems,0xEF404E12L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB);
  232.  
  233. /* Definition of interface: MenuItems */
  234. #undef INTERFACE
  235. #define INTERFACE MenuItems
  236.  
  237. DECLARE_INTERFACE_(MenuItems, IDispatch)
  238. {
  239. #ifndef NO_BASEINTERFACE_FUNCS
  240.  
  241.     /* IUnknown methods */
  242.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  243.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  244.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  245.  
  246.     /* IDispatch methods */
  247.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  248.  
  249.     STDMETHOD(GetTypeInfo)(
  250.       THIS_
  251.       UINT itinfo,
  252.       LCID lcid,
  253.       ITypeInfo FAR* FAR* pptinfo) PURE;
  254.  
  255.     STDMETHOD(GetIDsOfNames)(
  256.       THIS_
  257.       REFIID riid,
  258.       OLECHAR FAR* FAR* rgszNames,
  259.       UINT cNames,
  260.       LCID lcid,
  261.       DISPID FAR* rgdispid) PURE;
  262.  
  263.     STDMETHOD(Invoke)(
  264.       THIS_
  265.       DISPID dispidMember,
  266.       REFIID riid,
  267.       LCID lcid,
  268.       WORD wFlags,
  269.       DISPPARAMS FAR* pdispparams,
  270.       VARIANT FAR* pvarResult,
  271.       EXCEPINFO FAR* pexcepinfo,
  272.       UINT FAR* puArgErr) PURE;
  273. #endif
  274.  
  275.     /* MenuItems methods */
  276.     STDMETHOD(Item)(THIS_ BSTR Index, IDispatch * FAR* lppidReturn) PURE;
  277.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  278.     STDMETHOD(get_Parent)(THIS_ IDispatch * FAR* lppidReturn) PURE;
  279.     STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE;
  280.     STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE;
  281.     STDMETHOD(Add)(THIS_ BSTR bstrCaption, _MenuLine FAR* FAR* lppmlReturn) PURE;
  282.     STDMETHOD(AddMenu)(THIS_ BSTR bstrCaption, SubMenu FAR* FAR* lppmReturn) PURE;
  283.     STDMETHOD(Remove)(THIS_ IDispatch * MenuItem, long FAR* lpsReturn) PURE;
  284. };
  285.  
  286. DEFINE_GUID(IID_SubMenu,0xEF404E15L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB);
  287.  
  288. /* Definition of interface: SubMenu */
  289. #undef INTERFACE
  290. #define INTERFACE SubMenu
  291.  
  292. DECLARE_INTERFACE_(SubMenu, IDispatch)
  293. {
  294. #ifndef NO_BASEINTERFACE_FUNCS
  295.  
  296.     /* IUnknown methods */
  297.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  298.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  299.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  300.  
  301.     /* IDispatch methods */
  302.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  303.  
  304.     STDMETHOD(GetTypeInfo)(
  305.       THIS_
  306.       UINT itinfo,
  307.       LCID lcid,
  308.       ITypeInfo FAR* FAR* pptinfo) PURE;
  309.  
  310.     STDMETHOD(GetIDsOfNames)(
  311.       THIS_
  312.       REFIID riid,
  313.       OLECHAR FAR* FAR* rgszNames,
  314.       UINT cNames,
  315.       LCID lcid,
  316.       DISPID FAR* rgdispid) PURE;
  317.  
  318.     STDMETHOD(Invoke)(
  319.       THIS_
  320.       DISPID dispidMember,
  321.       REFIID riid,
  322.       LCID lcid,
  323.       WORD wFlags,
  324.       DISPPARAMS FAR* pdispparams,
  325.       VARIANT FAR* pvarResult,
  326.       EXCEPINFO FAR* pexcepinfo,
  327.       UINT FAR* puArgErr) PURE;
  328. #endif
  329.  
  330.     /* SubMenu methods */
  331.     STDMETHOD(get_MenuItems)(THIS_ MenuItems FAR* FAR* lppmiReturn) PURE;
  332.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  333.     STDMETHOD(get_Parent)(THIS_ MenuItems FAR* FAR* lppmiReturn) PURE;
  334.     STDMETHOD(get_Caption)(THIS_ BSTR FAR* lpbstrReturn) PURE;
  335.     STDMETHOD(put_Caption)(THIS_ BSTR bstrCaption) PURE;
  336.     STDMETHOD(get_Enabled)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE;
  337.     STDMETHOD(put_Enabled)(THIS_ VARIANT_BOOL sEnabled) PURE;
  338. };
  339.  
  340. DEFINE_GUID(IID__MenuLine,0xEF404E18L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB);
  341.  
  342. /* Definition of interface: _MenuLine */
  343. #undef INTERFACE
  344. #define INTERFACE _MenuLine
  345.  
  346. DECLARE_INTERFACE_(_MenuLine, IDispatch)
  347. {
  348. #ifndef NO_BASEINTERFACE_FUNCS
  349.  
  350.     /* IUnknown methods */
  351.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  352.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  353.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  354.  
  355.     /* IDispatch methods */
  356.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  357.  
  358.     STDMETHOD(GetTypeInfo)(
  359.       THIS_
  360.       UINT itinfo,
  361.       LCID lcid,
  362.       ITypeInfo FAR* FAR* pptinfo) PURE;
  363.  
  364.     STDMETHOD(GetIDsOfNames)(
  365.       THIS_
  366.       REFIID riid,
  367.       OLECHAR FAR* FAR* rgszNames,
  368.       UINT cNames,
  369.       LCID lcid,
  370.       DISPID FAR* rgdispid) PURE;
  371.  
  372.     STDMETHOD(Invoke)(
  373.       THIS_
  374.       DISPID dispidMember,
  375.       REFIID riid,
  376.       LCID lcid,
  377.       WORD wFlags,
  378.       DISPPARAMS FAR* pdispparams,
  379.       VARIANT FAR* pvarResult,
  380.       EXCEPINFO FAR* pexcepinfo,
  381.       UINT FAR* puArgErr) PURE;
  382. #endif
  383.  
  384.     /* _MenuLine methods */
  385.     STDMETHOD(get_Caption)(THIS_ BSTR FAR* lpbstrReturn) PURE;
  386.     STDMETHOD(put_Caption)(THIS_ BSTR bstrCaption) PURE;
  387.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  388.     STDMETHOD(get_Parent)(THIS_ MenuItems FAR* FAR* lppmiReturn) PURE;
  389.     STDMETHOD(get_Enabled)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE;
  390.     STDMETHOD(put_Enabled)(THIS_ VARIANT_BOOL sEnabled) PURE;
  391.     STDMETHOD(get_Checked)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE;
  392.     STDMETHOD(put_Checked)(THIS_ VARIANT_BOOL fChecked) PURE;
  393.     STDMETHOD(get_HelpContextID)(THIS_ long FAR* lplReturn) PURE;
  394.     STDMETHOD(put_HelpContextID)(THIS_ long ulHelpID) PURE;
  395.     STDMETHOD(get_HelpFile)(THIS_ BSTR FAR* lpbstrReturn) PURE;
  396.     STDMETHOD(put_HelpFile)(THIS_ BSTR bstrFileName) PURE;
  397.     STDMETHOD(ConnectEvents)(THIS_ IDispatch * pdspSink, long FAR* lplReturn) PURE;
  398.     STDMETHOD(DisconnectEvents)(THIS_ long hConnection) PURE;
  399. };
  400.  
  401. DEFINE_GUID(DIID_MenuLineEvents,0xEF404E1AL,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB);
  402.  
  403. /* Definition of dispatch interface: MenuLineEvents */
  404. #undef INTERFACE
  405. #define INTERFACE MenuLineEvents
  406.  
  407. DECLARE_INTERFACE_(MenuLineEvents, IDispatch)
  408. {
  409. #ifndef NO_BASEINTERFACE_FUNCS
  410.  
  411.     /* IUnknown methods */
  412.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  413.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  414.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  415.  
  416.     /* IDispatch methods */
  417.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  418.  
  419.     STDMETHOD(GetTypeInfo)(
  420.       THIS_
  421.       UINT itinfo,
  422.       LCID lcid,
  423.       ITypeInfo FAR* FAR* pptinfo) PURE;
  424.  
  425.     STDMETHOD(GetIDsOfNames)(
  426.       THIS_
  427.       REFIID riid,
  428.       OLECHAR FAR* FAR* rgszNames,
  429.       UINT cNames,
  430.       LCID lcid,
  431.       DISPID FAR* rgdispid) PURE;
  432.  
  433.     STDMETHOD(Invoke)(
  434.       THIS_
  435.       DISPID dispidMember,
  436.       REFIID riid,
  437.       LCID lcid,
  438.       WORD wFlags,
  439.       DISPPARAMS FAR* pdispparams,
  440.       VARIANT FAR* pvarResult,
  441.       EXCEPINFO FAR* pexcepinfo,
  442.       UINT FAR* puArgErr) PURE;
  443. #endif
  444.  
  445.     /* MenuLineEvents methods:
  446.     void AfterClick(void);
  447.     */
  448. };
  449.  
  450. DEFINE_GUID(CLSID_MenuLine,0xEF404E1BL,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB);
  451.  
  452. #ifdef __cplusplus
  453. class MenuLine;
  454. #endif
  455.  
  456. DEFINE_GUID(IID__ProjectTemplate,0xEF404E22L,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB);
  457.  
  458. /* Definition of interface: _ProjectTemplate */
  459. #undef INTERFACE
  460. #define INTERFACE _ProjectTemplate
  461.  
  462. DECLARE_INTERFACE_(_ProjectTemplate, IDispatch)
  463. {
  464. #ifndef NO_BASEINTERFACE_FUNCS
  465.  
  466.     /* IUnknown methods */
  467.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  468.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  469.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  470.  
  471.     /* IDispatch methods */
  472.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  473.  
  474.     STDMETHOD(GetTypeInfo)(
  475.       THIS_
  476.       UINT itinfo,
  477.       LCID lcid,
  478.       ITypeInfo FAR* FAR* pptinfo) PURE;
  479.  
  480.     STDMETHOD(GetIDsOfNames)(
  481.       THIS_
  482.       REFIID riid,
  483.       OLECHAR FAR* FAR* rgszNames,
  484.       UINT cNames,
  485.       LCID lcid,
  486.       DISPID FAR* rgdispid) PURE;
  487.  
  488.     STDMETHOD(Invoke)(
  489.       THIS_
  490.       DISPID dispidMember,
  491.       REFIID riid,
  492.       LCID lcid,
  493.       WORD wFlags,
  494.       DISPPARAMS FAR* pdispparams,
  495.       VARIANT FAR* pvarResult,
  496.       EXCEPINFO FAR* pexcepinfo,
  497.       UINT FAR* puArgErr) PURE;
  498. #endif
  499.  
  500.     /* _ProjectTemplate methods */
  501.     STDMETHOD(get_ActiveForm)(THIS_ FormTemplate FAR* FAR* lppftReturn) PURE;
  502.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  503.     STDMETHOD(get_Parent)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  504.     STDMETHOD(get_SelectedComponents)(THIS_ SelectedComponents FAR* FAR* lppscReturn) PURE;
  505.     STDMETHOD(AddFile)(THIS_ BSTR FileName, BSTR FAR* lpbstrReturn) PURE;
  506.     STDMETHOD(RemoveComponent)(THIS_ Component FAR* Comp, VARIANT_BOOL Save, VARIANT_BOOL FAR* lpfReturn) PURE;
  507.     STDMETHOD(AddReference)(THIS_ VARIANT Guid, VARIANT VerMajor, VARIANT VerMinor, VARIANT FileName) PURE;
  508.     STDMETHOD(AddToolboxTypelib)(THIS_ BSTR Guid, short MajorVersion, short MinorVersion, VARIANT FileName) PURE;
  509.     STDMETHOD(AddToolboxProgID)(THIS_ BSTR ProgID, VARIANT FileName) PURE;
  510.     STDMETHOD(AddToolboxVBX)(THIS_ BSTR FileName) PURE;
  511.     STDMETHOD(AddFormTemplate)(THIS_ FormTemplate FAR* FAR* lppftReturn) PURE;
  512.     STDMETHOD(AddMDIFormTemplate)(THIS_ FormTemplate FAR* FAR* lppftReturn) PURE;
  513.     STDMETHOD(get_FileName)(THIS_ BSTR FAR* lpbstrReturn) PURE;
  514.     STDMETHOD(get_IsDirty)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE;
  515.     STDMETHOD(put_IsDirty)(THIS_ VARIANT_BOOL Dirty) PURE;
  516.     STDMETHOD(WriteProperty)(THIS_ BSTR Section, BSTR Key, BSTR Value) PURE;
  517.     STDMETHOD(ReadProperty)(THIS_ BSTR Section, BSTR Key, BSTR FAR* lpbstrValue) PURE;
  518.     STDMETHOD(ConnectEvents)(THIS_ IDispatch * pdspSink, long FAR* lplReturn) PURE;
  519.     STDMETHOD(DisconnectEvents)(THIS_ long hConnection) PURE;
  520.     STDMETHOD(get_Components)(THIS_ Components FAR* FAR* lppcReturn) PURE;
  521. };
  522.  
  523. DEFINE_GUID(DIID_ProjectTemplateEvents,0x31DE1170L,0x1602,0x11CE,0xBF,0xDC,0x08,0x00,0x2B,0x2B,0x8C,0xDA);
  524.  
  525. /* Definition of dispatch interface: ProjectTemplateEvents */
  526. #undef INTERFACE
  527. #define INTERFACE ProjectTemplateEvents
  528.  
  529. DECLARE_INTERFACE_(ProjectTemplateEvents, IDispatch)
  530. {
  531. #ifndef NO_BASEINTERFACE_FUNCS
  532.  
  533.     /* IUnknown methods */
  534.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  535.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  536.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  537.  
  538.     /* IDispatch methods */
  539.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  540.  
  541.     STDMETHOD(GetTypeInfo)(
  542.       THIS_
  543.       UINT itinfo,
  544.       LCID lcid,
  545.       ITypeInfo FAR* FAR* pptinfo) PURE;
  546.  
  547.     STDMETHOD(GetIDsOfNames)(
  548.       THIS_
  549.       REFIID riid,
  550.       OLECHAR FAR* FAR* rgszNames,
  551.       UINT cNames,
  552.       LCID lcid,
  553.       DISPID FAR* rgdispid) PURE;
  554.  
  555.     STDMETHOD(Invoke)(
  556.       THIS_
  557.       DISPID dispidMember,
  558.       REFIID riid,
  559.       LCID lcid,
  560.       WORD wFlags,
  561.       DISPPARAMS FAR* pdispparams,
  562.       VARIANT FAR* pvarResult,
  563.       EXCEPINFO FAR* pexcepinfo,
  564.       UINT FAR* puArgErr) PURE;
  565. #endif
  566.  
  567.     /* ProjectTemplateEvents methods:
  568.     void CheckIn(void);
  569.     void CheckOut(void);
  570.     void Fetch(void);
  571.     void UncheckOut(void);
  572.     */
  573. };
  574.  
  575. DEFINE_GUID(CLSID_ProjectTemplate,0x32CDF9E0L,0x1602,0x11CE,0xBF,0xDC,0x08,0x00,0x2B,0x2B,0x8C,0xDA);
  576.  
  577. #ifdef __cplusplus
  578. class ProjectTemplate;
  579. #endif
  580.  
  581. DEFINE_GUID(IID_SelectedComponents,0xEF404E1CL,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB);
  582.  
  583. /* Definition of interface: SelectedComponents */
  584. #undef INTERFACE
  585. #define INTERFACE SelectedComponents
  586.  
  587. DECLARE_INTERFACE_(SelectedComponents, IDispatch)
  588. {
  589. #ifndef NO_BASEINTERFACE_FUNCS
  590.  
  591.     /* IUnknown methods */
  592.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  593.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  594.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  595.  
  596.     /* IDispatch methods */
  597.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  598.  
  599.     STDMETHOD(GetTypeInfo)(
  600.       THIS_
  601.       UINT itinfo,
  602.       LCID lcid,
  603.       ITypeInfo FAR* FAR* pptinfo) PURE;
  604.  
  605.     STDMETHOD(GetIDsOfNames)(
  606.       THIS_
  607.       REFIID riid,
  608.       OLECHAR FAR* FAR* rgszNames,
  609.       UINT cNames,
  610.       LCID lcid,
  611.       DISPID FAR* rgdispid) PURE;
  612.  
  613.     STDMETHOD(Invoke)(
  614.       THIS_
  615.       DISPID dispidMember,
  616.       REFIID riid,
  617.       LCID lcid,
  618.       WORD wFlags,
  619.       DISPPARAMS FAR* pdispparams,
  620.       VARIANT FAR* pvarResult,
  621.       EXCEPINFO FAR* pexcepinfo,
  622.       UINT FAR* puArgErr) PURE;
  623. #endif
  624.  
  625.     /* SelectedComponents methods */
  626.     STDMETHOD(Item)(THIS_ int index, Component FAR* FAR* lppcReturn) PURE;
  627.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  628.     STDMETHOD(get_Parent)(THIS_ _ProjectTemplate FAR* FAR* lppptReturn) PURE;
  629.     STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE;
  630.     STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE;
  631. };
  632.  
  633. DEFINE_GUID(IID_Components,0x2F3304A0L,0x1602,0x11CE,0xBF,0xDC,0x08,0x00,0x2B,0x2B,0x8C,0xDA);
  634.  
  635. /* Definition of interface: Components */
  636. #undef INTERFACE
  637. #define INTERFACE Components
  638.  
  639. DECLARE_INTERFACE_(Components, IDispatch)
  640. {
  641. #ifndef NO_BASEINTERFACE_FUNCS
  642.  
  643.     /* IUnknown methods */
  644.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  645.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  646.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  647.  
  648.     /* IDispatch methods */
  649.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  650.  
  651.     STDMETHOD(GetTypeInfo)(
  652.       THIS_
  653.       UINT itinfo,
  654.       LCID lcid,
  655.       ITypeInfo FAR* FAR* pptinfo) PURE;
  656.  
  657.     STDMETHOD(GetIDsOfNames)(
  658.       THIS_
  659.       REFIID riid,
  660.       OLECHAR FAR* FAR* rgszNames,
  661.       UINT cNames,
  662.       LCID lcid,
  663.       DISPID FAR* rgdispid) PURE;
  664.  
  665.     STDMETHOD(Invoke)(
  666.       THIS_
  667.       DISPID dispidMember,
  668.       REFIID riid,
  669.       LCID lcid,
  670.       WORD wFlags,
  671.       DISPPARAMS FAR* pdispparams,
  672.       VARIANT FAR* pvarResult,
  673.       EXCEPINFO FAR* pexcepinfo,
  674.       UINT FAR* puArgErr) PURE;
  675. #endif
  676.  
  677.     /* Components methods */
  678.     STDMETHOD(Item)(THIS_ VARIANT index, Component FAR* FAR* lppcReturn) PURE;
  679.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  680.     STDMETHOD(get_Parent)(THIS_ _ProjectTemplate FAR* FAR* lppptReturn) PURE;
  681.     STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE;
  682.     STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE;
  683. };
  684.  
  685. typedef enum vbextSCCStatus {
  686.     vbextSCCStatusNotControlled = 0,
  687.     vbextSCCStatusControlled = 1,
  688.     vbextSCCStatusCheckedOut = 2,
  689.     vbextSCCStatusOutOther = 4,
  690.     vbextSCCStatusOutOfDate = 32,
  691.     vbextSCCStatusShared = 512
  692. } vbextSCCStatus;
  693.  
  694. DEFINE_GUID(IID_Component,0xEF404E1FL,0xEDA6,0x101A,0x8D,0xAF,0x00,0xDD,0x01,0x0F,0x7E,0xBB);
  695.  
  696. /* Definition of interface: Component */
  697. #undef INTERFACE
  698. #define INTERFACE Component
  699.  
  700. DECLARE_INTERFACE_(Component, IDispatch)
  701. {
  702. #ifndef NO_BASEINTERFACE_FUNCS
  703.  
  704.     /* IUnknown methods */
  705.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  706.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  707.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  708.  
  709.     /* IDispatch methods */
  710.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  711.  
  712.     STDMETHOD(GetTypeInfo)(
  713.       THIS_
  714.       UINT itinfo,
  715.       LCID lcid,
  716.       ITypeInfo FAR* FAR* pptinfo) PURE;
  717.  
  718.     STDMETHOD(GetIDsOfNames)(
  719.       THIS_
  720.       REFIID riid,
  721.       OLECHAR FAR* FAR* rgszNames,
  722.       UINT cNames,
  723.       LCID lcid,
  724.       DISPID FAR* rgdispid) PURE;
  725.  
  726.     STDMETHOD(Invoke)(
  727.       THIS_
  728.       DISPID dispidMember,
  729.       REFIID riid,
  730.       LCID lcid,
  731.       WORD wFlags,
  732.       DISPPARAMS FAR* pdispparams,
  733.       VARIANT FAR* pvarResult,
  734.       EXCEPINFO FAR* pexcepinfo,
  735.       UINT FAR* puArgErr) PURE;
  736. #endif
  737.  
  738.     /* Component methods */
  739.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  740.     STDMETHOD(get_Parent)(THIS_ Components FAR* FAR* lppcReturn) PURE;
  741.     STDMETHOD(get_IsDirty)(THIS_ VARIANT_BOOL FAR* lpfReturn) PURE;
  742.     STDMETHOD(get_FileNames)(THIS_ short Index, BSTR FAR* lpbstrReturn) PURE;
  743.     STDMETHOD(SaveAs)(THIS_ BSTR NewFileName, VARIANT_BOOL FAR* lpfReturn) PURE;
  744.     STDMETHOD(get_FileCount)(THIS_ short FAR* lpsReturn) PURE;
  745.     STDMETHOD(get_IconState)(THIS_ long FAR* lpulReturn) PURE;
  746.     STDMETHOD(put_IconState)(THIS_ long Value) PURE;
  747.     STDMETHOD(InsertFile)(THIS_ BSTR FileName) PURE;
  748.     STDMETHOD(Reload)(THIS) PURE;
  749.     STDMETHOD(get_Name)(THIS_ BSTR FAR* pbstrReturn) PURE;
  750. };
  751.  
  752. DEFINE_GUID(IID_FormTemplate,0x79B1F921L,0xEC2C,0x101A,0xB1,0xF9,0x08,0x00,0x2B,0x2B,0x8C,0xDA);
  753.  
  754. /* Definition of interface: FormTemplate */
  755. #undef INTERFACE
  756. #define INTERFACE FormTemplate
  757.  
  758. DECLARE_INTERFACE_(FormTemplate, IDispatch)
  759. {
  760. #ifndef NO_BASEINTERFACE_FUNCS
  761.  
  762.     /* IUnknown methods */
  763.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  764.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  765.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  766.  
  767.     /* IDispatch methods */
  768.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  769.  
  770.     STDMETHOD(GetTypeInfo)(
  771.       THIS_
  772.       UINT itinfo,
  773.       LCID lcid,
  774.       ITypeInfo FAR* FAR* pptinfo) PURE;
  775.  
  776.     STDMETHOD(GetIDsOfNames)(
  777.       THIS_
  778.       REFIID riid,
  779.       OLECHAR FAR* FAR* rgszNames,
  780.       UINT cNames,
  781.       LCID lcid,
  782.       DISPID FAR* rgdispid) PURE;
  783.  
  784.     STDMETHOD(Invoke)(
  785.       THIS_
  786.       DISPID dispidMember,
  787.       REFIID riid,
  788.       LCID lcid,
  789.       WORD wFlags,
  790.       DISPPARAMS FAR* pdispparams,
  791.       VARIANT FAR* pvarResult,
  792.       EXCEPINFO FAR* pexcepinfo,
  793.       UINT FAR* puArgErr) PURE;
  794. #endif
  795.  
  796.     /* FormTemplate methods */
  797.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  798.     STDMETHOD(get_Parent)(THIS_ _ProjectTemplate FAR* FAR* lppptReturn) PURE;
  799.     STDMETHOD(get_SelectedControlTemplates)(THIS_ SelectedControlTemplates FAR* FAR* lppsctReturn) PURE;
  800.     STDMETHOD(get_ControlTemplates)(THIS_ ControlTemplates FAR* FAR* lppctReturn) PURE;
  801.     STDMETHOD(get_Properties)(THIS_ Properties FAR* FAR* lpppReturn) PURE;
  802.     STDMETHOD(AddMenuTemplate)(THIS_ BSTR Name, ControlTemplate FAR* Parent, ControlTemplate FAR* FAR* lppctReturn) PURE;
  803.     STDMETHOD(InsertFile)(THIS_ BSTR FileName) PURE;
  804. };
  805.  
  806. DEFINE_GUID(IID_ControlTemplate,0x79B1F922L,0xEC2C,0x101A,0xB1,0xF9,0x08,0x00,0x2B,0x2B,0x8C,0xDA);
  807.  
  808. /* Definition of interface: ControlTemplate */
  809. #undef INTERFACE
  810. #define INTERFACE ControlTemplate
  811.  
  812. DECLARE_INTERFACE_(ControlTemplate, IDispatch)
  813. {
  814. #ifndef NO_BASEINTERFACE_FUNCS
  815.  
  816.     /* IUnknown methods */
  817.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  818.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  819.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  820.  
  821.     /* IDispatch methods */
  822.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  823.  
  824.     STDMETHOD(GetTypeInfo)(
  825.       THIS_
  826.       UINT itinfo,
  827.       LCID lcid,
  828.       ITypeInfo FAR* FAR* pptinfo) PURE;
  829.  
  830.     STDMETHOD(GetIDsOfNames)(
  831.       THIS_
  832.       REFIID riid,
  833.       OLECHAR FAR* FAR* rgszNames,
  834.       UINT cNames,
  835.       LCID lcid,
  836.       DISPID FAR* rgdispid) PURE;
  837.  
  838.     STDMETHOD(Invoke)(
  839.       THIS_
  840.       DISPID dispidMember,
  841.       REFIID riid,
  842.       LCID lcid,
  843.       WORD wFlags,
  844.       DISPPARAMS FAR* pdispparams,
  845.       VARIANT FAR* pvarResult,
  846.       EXCEPINFO FAR* pexcepinfo,
  847.       UINT FAR* puArgErr) PURE;
  848. #endif
  849.  
  850.     /* ControlTemplate methods */
  851.     STDMETHOD(get_ClassName)(THIS_ BSTR FAR* lpbstrReturn) PURE;
  852.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  853.     STDMETHOD(get_Parent)(THIS_ ControlTemplates FAR* FAR* lppctReturn) PURE;
  854.     STDMETHOD(get_Container)(THIS_ IDispatch * FAR* lppidReturn) PURE;
  855.     STDMETHOD(putref_Container)(THIS_ IDispatch * NewContainer) PURE;
  856.     STDMETHOD(get_Properties)(THIS_ Properties FAR* FAR* lpppReturn) PURE;
  857.     STDMETHOD(ZOrder)(THIS_ int Position, ControlTemplate FAR* FAR* lppctReturn) PURE;
  858. };
  859.  
  860. DEFINE_GUID(IID_Property,0x79B1F923L,0xEC2C,0x101A,0xB1,0xF9,0x08,0x00,0x2B,0x2B,0x8C,0xDA);
  861.  
  862. /* Definition of interface: Property */
  863. #undef INTERFACE
  864. #define INTERFACE Property
  865.  
  866. DECLARE_INTERFACE_(Property, IDispatch)
  867. {
  868. #ifndef NO_BASEINTERFACE_FUNCS
  869.  
  870.     /* IUnknown methods */
  871.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  872.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  873.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  874.  
  875.     /* IDispatch methods */
  876.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  877.  
  878.     STDMETHOD(GetTypeInfo)(
  879.       THIS_
  880.       UINT itinfo,
  881.       LCID lcid,
  882.       ITypeInfo FAR* FAR* pptinfo) PURE;
  883.  
  884.     STDMETHOD(GetIDsOfNames)(
  885.       THIS_
  886.       REFIID riid,
  887.       OLECHAR FAR* FAR* rgszNames,
  888.       UINT cNames,
  889.       LCID lcid,
  890.       DISPID FAR* rgdispid) PURE;
  891.  
  892.     STDMETHOD(Invoke)(
  893.       THIS_
  894.       DISPID dispidMember,
  895.       REFIID riid,
  896.       LCID lcid,
  897.       WORD wFlags,
  898.       DISPPARAMS FAR* pdispparams,
  899.       VARIANT FAR* pvarResult,
  900.       EXCEPINFO FAR* pexcepinfo,
  901.       UINT FAR* puArgErr) PURE;
  902. #endif
  903.  
  904.     /* Property methods */
  905.     STDMETHOD(get_Value)(THIS_ VARIANT FAR* lppvReturn) PURE;
  906.     STDMETHOD(put_Value)(THIS_ VARIANT NewValue) PURE;
  907.     STDMETHOD(get_IndexedValue)(THIS_ VARIANT Index1, VARIANT Index2, VARIANT Index3, VARIANT Index4, VARIANT FAR* lppvReturn) PURE;
  908.     STDMETHOD(put_IndexedValue)(THIS_ VARIANT Index1, VARIANT Index2, VARIANT Index3, VARIANT Index4, VARIANT NewValue) PURE;
  909.     STDMETHOD(get_NumIndices)(THIS_ short FAR* lpiRetVal) PURE;
  910.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lpaReturn) PURE;
  911.     STDMETHOD(get_Parent)(THIS_ Properties FAR* FAR* lpppReturn) PURE;
  912.     STDMETHOD(get_Name)(THIS_ BSTR FAR* lpbstrReturn) PURE;
  913. };
  914.  
  915. DEFINE_GUID(IID_Properties,0x79B1F925L,0xEC2C,0x101A,0xB1,0xF9,0x08,0x00,0x2B,0x2B,0x8C,0xDA);
  916.  
  917. /* Definition of interface: Properties */
  918. #undef INTERFACE
  919. #define INTERFACE Properties
  920.  
  921. DECLARE_INTERFACE_(Properties, IDispatch)
  922. {
  923. #ifndef NO_BASEINTERFACE_FUNCS
  924.  
  925.     /* IUnknown methods */
  926.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  927.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  928.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  929.  
  930.     /* IDispatch methods */
  931.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  932.  
  933.     STDMETHOD(GetTypeInfo)(
  934.       THIS_
  935.       UINT itinfo,
  936.       LCID lcid,
  937.       ITypeInfo FAR* FAR* pptinfo) PURE;
  938.  
  939.     STDMETHOD(GetIDsOfNames)(
  940.       THIS_
  941.       REFIID riid,
  942.       OLECHAR FAR* FAR* rgszNames,
  943.       UINT cNames,
  944.       LCID lcid,
  945.       DISPID FAR* rgdispid) PURE;
  946.  
  947.     STDMETHOD(Invoke)(
  948.       THIS_
  949.       DISPID dispidMember,
  950.       REFIID riid,
  951.       LCID lcid,
  952.       WORD wFlags,
  953.       DISPPARAMS FAR* pdispparams,
  954.       VARIANT FAR* pvarResult,
  955.       EXCEPINFO FAR* pexcepinfo,
  956.       UINT FAR* puArgErr) PURE;
  957. #endif
  958.  
  959.     /* Properties methods */
  960.     STDMETHOD(Item)(THIS_ VARIANT index, Property FAR* FAR* lplppReturn) PURE;
  961.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lppaReturn) PURE;
  962.     STDMETHOD(get_Parent)(THIS_ IDispatch * FAR* lppidReturn) PURE;
  963.     STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE;
  964.     STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE;
  965. };
  966.  
  967. DEFINE_GUID(IID_ControlTemplates,0x79B1F924L,0xEC2C,0x101A,0xB1,0xF9,0x08,0x00,0x2B,0x2B,0x8C,0xDA);
  968.  
  969. /* Definition of interface: ControlTemplates */
  970. #undef INTERFACE
  971. #define INTERFACE ControlTemplates
  972.  
  973. DECLARE_INTERFACE_(ControlTemplates, IDispatch)
  974. {
  975. #ifndef NO_BASEINTERFACE_FUNCS
  976.  
  977.     /* IUnknown methods */
  978.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  979.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  980.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  981.  
  982.     /* IDispatch methods */
  983.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  984.  
  985.     STDMETHOD(GetTypeInfo)(
  986.       THIS_
  987.       UINT itinfo,
  988.       LCID lcid,
  989.       ITypeInfo FAR* FAR* pptinfo) PURE;
  990.  
  991.     STDMETHOD(GetIDsOfNames)(
  992.       THIS_
  993.       REFIID riid,
  994.       OLECHAR FAR* FAR* rgszNames,
  995.       UINT cNames,
  996.       LCID lcid,
  997.       DISPID FAR* rgdispid) PURE;
  998.  
  999.     STDMETHOD(Invoke)(
  1000.       THIS_
  1001.       DISPID dispidMember,
  1002.       REFIID riid,
  1003.       LCID lcid,
  1004.       WORD wFlags,
  1005.       DISPPARAMS FAR* pdispparams,
  1006.       VARIANT FAR* pvarResult,
  1007.       EXCEPINFO FAR* pexcepinfo,
  1008.       UINT FAR* puArgErr) PURE;
  1009. #endif
  1010.  
  1011.     /* ControlTemplates methods */
  1012.     STDMETHOD(Item)(THIS_ VARIANT Item, VARIANT Index, ControlTemplate FAR* FAR* lppctReturn) PURE;
  1013.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lpaReturn) PURE;
  1014.     STDMETHOD(get_Parent)(THIS_ FormTemplate FAR* FAR* lppftReturn) PURE;
  1015.     STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE;
  1016.     STDMETHOD(Add)(THIS_ BSTR ClassName, VARIANT Container, ControlTemplate FAR* FAR* lppctReturn) PURE;
  1017.     STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE;
  1018. };
  1019.  
  1020. DEFINE_GUID(IID_SelectedControlTemplates,0x79B1F926L,0xEC2C,0x101A,0xB1,0xF9,0x08,0x00,0x2B,0x2B,0x8C,0xDA);
  1021.  
  1022. /* Definition of interface: SelectedControlTemplates */
  1023. #undef INTERFACE
  1024. #define INTERFACE SelectedControlTemplates
  1025.  
  1026. DECLARE_INTERFACE_(SelectedControlTemplates, IDispatch)
  1027. {
  1028. #ifndef NO_BASEINTERFACE_FUNCS
  1029.  
  1030.     /* IUnknown methods */
  1031.     STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
  1032.     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
  1033.     STDMETHOD_(ULONG, Release)(THIS) PURE;
  1034.  
  1035.     /* IDispatch methods */
  1036.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
  1037.  
  1038.     STDMETHOD(GetTypeInfo)(
  1039.       THIS_
  1040.       UINT itinfo,
  1041.       LCID lcid,
  1042.       ITypeInfo FAR* FAR* pptinfo) PURE;
  1043.  
  1044.     STDMETHOD(GetIDsOfNames)(
  1045.       THIS_
  1046.       REFIID riid,
  1047.       OLECHAR FAR* FAR* rgszNames,
  1048.       UINT cNames,
  1049.       LCID lcid,
  1050.       DISPID FAR* rgdispid) PURE;
  1051.  
  1052.     STDMETHOD(Invoke)(
  1053.       THIS_
  1054.       DISPID dispidMember,
  1055.       REFIID riid,
  1056.       LCID lcid,
  1057.       WORD wFlags,
  1058.       DISPPARAMS FAR* pdispparams,
  1059.       VARIANT FAR* pvarResult,
  1060.       EXCEPINFO FAR* pexcepinfo,
  1061.       UINT FAR* puArgErr) PURE;
  1062. #endif
  1063.  
  1064.     /* SelectedControlTemplates methods */
  1065.     STDMETHOD(Item)(THIS_ long Item, ControlTemplate FAR* FAR* lppctReturn) PURE;
  1066.     STDMETHOD(get_Application)(THIS_ Application FAR* FAR* lpaReturn) PURE;
  1067.     STDMETHOD(get_Parent)(THIS_ FormTemplate FAR* FAR* lppftReturn) PURE;
  1068.     STDMETHOD(get_Count)(THIS_ long FAR* lplReturn) PURE;
  1069.     STDMETHOD(_NewEnum)(THIS_ IUnknown * FAR* lppiuReturn) PURE;
  1070. };
  1071.  
  1072. typedef enum vbextMenuShortcut {
  1073.     vbextMenuShortcutCtrlA = 1,
  1074.     vbextMenuShortcutCtrlB = 2,
  1075.     vbextMenuShortcutCtrlC = 3,
  1076.     vbextMenuShortcutCtrlD = 4,
  1077.     vbextMenuShortcutCtrlE = 5,
  1078.     vbextMenuShortcutCtrlF = 6,
  1079.     vbextMenuShortcutCtrlG = 7,
  1080.     vbextMenuShortcutCtrlH = 8,
  1081.     vbextMenuShortcutCtrlI = 9,
  1082.     vbextMenuShortcutCtrlJ = 10,
  1083.     vbextMenuShortcutCtrlK = 11,
  1084.     vbextMenuShortcutCtrlL = 12,
  1085.     vbextMenuShortcutCtrlM = 13,
  1086.     vbextMenuShortcutCtrlN = 14,
  1087.     vbextMenuShortcutCtrlO = 15,
  1088.     vbextMenuShortcutCtrlP = 16,
  1089.     vbextMenuShortcutCtrlQ = 17,
  1090.     vbextMenuShortcutCtrlR = 18,
  1091.     vbextMenuShortcutCtrlS = 19,
  1092.     vbextMenuShortcutCtrlT = 20,
  1093.     vbextMenuShortcutCtrlU = 21,
  1094.     vbextMenuShortcutCtrlV = 22,
  1095.     vbextMenuShortcutCtrlW = 23,
  1096.     vbextMenuShortcutCtrlX = 24,
  1097.     vbextMenuShortcutCtrlY = 25,
  1098.     vbextMenuShortcutCtrlZ = 26,
  1099.     vbextMenuShortcutF1 = 27,
  1100.     vbextMenuShortcutF2 = 28,
  1101.     vbextMenuShortcutF3 = 29,
  1102.     vbextMenuShortcutF4 = 30,
  1103.     vbextMenuShortcutF5 = 31,
  1104.     vbextMenuShortcutF6 = 32,
  1105.     vbextMenuShortcutF7 = 33,
  1106.     vbextMenuShortcutF8 = 34,
  1107.     vbextMenuShortcutF9 = 35,
  1108.     vbextMenuShortcutF11 = 37,
  1109.     vbextMenuShortcutF12 = 38,
  1110.     vbextMenuShortcutCtrlF1 = 39,
  1111.     vbextMenuShortcutCtrlF2 = 40,
  1112.     vbextMenuShortcutCtrlF3 = 41,
  1113.     vbextMenuShortcutCtrlF4 = 42,
  1114.     vbextMenuShortcutCtrlF5 = 43,
  1115.     vbextMenuShortcutCtrlF6 = 44,
  1116.     vbextMenuShortcutCtrlF7 = 45,
  1117.     vbextMenuShortcutCtrlF8 = 46,
  1118.     vbextMenuShortcutCtrlF9 = 47,
  1119.     vbextMenuShortcutCtrlF11 = 49,
  1120.     vbextMenuShortcutCtrlF12 = 50,
  1121.     vbextMenuShortcutShiftF1 = 51,
  1122.     vbextMenuShortcutShiftF2 = 52,
  1123.     vbextMenuShortcutShiftF3 = 53,
  1124.     vbextMenuShortcutShiftF4 = 54,
  1125.     vbextMenuShortcutShiftF5 = 55,
  1126.     vbextMenuShortcutShiftF6 = 56,
  1127.     vbextMenuShortcutShiftF7 = 57,
  1128.     vbextMenuShortcutShiftF8 = 58,
  1129.     vbextMenuShortcutShiftF9 = 59,
  1130.     vbextMenuShortcutShiftF11 = 61,
  1131.     vbextMenuShortcutShiftF12 = 62,
  1132.     vbextMenuShortcutCtrlShiftF1 = 63,
  1133.     vbextMenuShortcutCtrlShiftF2 = 64,
  1134.     vbextMenuShortcutCtrlShiftF3 = 65,
  1135.     vbextMenuShortcutCtrlShiftF4 = 66,
  1136.     vbextMenuShortcutCtrlShiftF5 = 67,
  1137.     vbextMenuShortcutCtrlShiftF6 = 68,
  1138.     vbextMenuShortcutCtrlShiftF7 = 69,
  1139.     vbextMenuShortcutCtrlShiftF8 = 70,
  1140.     vbextMenuShortcutCtrlShiftF9 = 71,
  1141.     vbextMenuShortcutCtrlShiftF11 = 73,
  1142.     vbextMenuShortcutCtrlShiftF12 = 74,
  1143.     vbextMenuShortcutCtrlIns = 75,
  1144.     vbextMenuShortcutShiftIns = 76,
  1145.     vbextMenuShortcutDel = 77,
  1146.     vbextMenuShortcutShiftDel = 78,
  1147.     vbextMenuShortcutAltBksp = 79
  1148. } vbextMenuShortcut;
  1149.  
  1150. #endif
  1151.