ShlDisp.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:298k
源码类别:

模拟服务器

开发平台:

C/C++

  1.         BEGIN_INTERFACE
  2.         
  3.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  4.             Folder3 * This,
  5.             /* [in] */ REFIID riid,
  6.             /* [iid_is][out] */ void **ppvObject);
  7.         
  8.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  9.             Folder3 * This);
  10.         
  11.         ULONG ( STDMETHODCALLTYPE *Release )( 
  12.             Folder3 * This);
  13.         
  14.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  15.             Folder3 * This,
  16.             /* [out] */ UINT *pctinfo);
  17.         
  18.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  19.             Folder3 * This,
  20.             /* [in] */ UINT iTInfo,
  21.             /* [in] */ LCID lcid,
  22.             /* [out] */ ITypeInfo **ppTInfo);
  23.         
  24.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  25.             Folder3 * This,
  26.             /* [in] */ REFIID riid,
  27.             /* [size_is][in] */ LPOLESTR *rgszNames,
  28.             /* [in] */ UINT cNames,
  29.             /* [in] */ LCID lcid,
  30.             /* [size_is][out] */ DISPID *rgDispId);
  31.         
  32.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  33.             Folder3 * This,
  34.             /* [in] */ DISPID dispIdMember,
  35.             /* [in] */ REFIID riid,
  36.             /* [in] */ LCID lcid,
  37.             /* [in] */ WORD wFlags,
  38.             /* [out][in] */ DISPPARAMS *pDispParams,
  39.             /* [out] */ VARIANT *pVarResult,
  40.             /* [out] */ EXCEPINFO *pExcepInfo,
  41.             /* [out] */ UINT *puArgErr);
  42.         
  43.         /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Title )( 
  44.             Folder3 * This,
  45.             /* [retval][out] */ BSTR *pbs);
  46.         
  47.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
  48.             Folder3 * This,
  49.             /* [retval][out] */ IDispatch **ppid);
  50.         
  51.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
  52.             Folder3 * This,
  53.             /* [retval][out] */ IDispatch **ppid);
  54.         
  55.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ParentFolder )( 
  56.             Folder3 * This,
  57.             /* [retval][out] */ Folder **ppsf);
  58.         
  59.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Items )( 
  60.             Folder3 * This,
  61.             /* [retval][out] */ FolderItems **ppid);
  62.         
  63.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ParseName )( 
  64.             Folder3 * This,
  65.             /* [in] */ BSTR bName,
  66.             /* [retval][out] */ FolderItem **ppid);
  67.         
  68.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *NewFolder )( 
  69.             Folder3 * This,
  70.             /* [in] */ BSTR bName,
  71.             /* [optional][in] */ VARIANT vOptions);
  72.         
  73.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MoveHere )( 
  74.             Folder3 * This,
  75.             /* [in] */ VARIANT vItem,
  76.             /* [optional][in] */ VARIANT vOptions);
  77.         
  78.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CopyHere )( 
  79.             Folder3 * This,
  80.             /* [in] */ VARIANT vItem,
  81.             /* [optional][in] */ VARIANT vOptions);
  82.         
  83.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDetailsOf )( 
  84.             Folder3 * This,
  85.             /* [in] */ VARIANT vItem,
  86.             /* [in] */ int iColumn,
  87.             /* [retval][out] */ BSTR *pbs);
  88.         
  89.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Self )( 
  90.             Folder3 * This,
  91.             /* [retval][out] */ FolderItem **ppfi);
  92.         
  93.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_OfflineStatus )( 
  94.             Folder3 * This,
  95.             /* [retval][out] */ LONG *pul);
  96.         
  97.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Synchronize )( 
  98.             Folder3 * This);
  99.         
  100.         /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_HaveToShowWebViewBarricade )( 
  101.             Folder3 * This,
  102.             /* [retval][out] */ VARIANT_BOOL *pbHaveToShowWebViewBarricade);
  103.         
  104.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DismissedWebViewBarricade )( 
  105.             Folder3 * This);
  106.         
  107.         /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_ShowWebViewBarricade )( 
  108.             Folder3 * This,
  109.             /* [retval][out] */ VARIANT_BOOL *pbShowWebViewBarricade);
  110.         
  111.         /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_ShowWebViewBarricade )( 
  112.             Folder3 * This,
  113.             /* [in] */ VARIANT_BOOL bShowWebViewBarricade);
  114.         
  115.         END_INTERFACE
  116.     } Folder3Vtbl;
  117.     interface Folder3
  118.     {
  119.         CONST_VTBL struct Folder3Vtbl *lpVtbl;
  120.     };
  121.     
  122. #ifdef COBJMACROS
  123. #define Folder3_QueryInterface(This,riid,ppvObject)
  124.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  125. #define Folder3_AddRef(This)
  126.     (This)->lpVtbl -> AddRef(This)
  127. #define Folder3_Release(This)
  128.     (This)->lpVtbl -> Release(This)
  129. #define Folder3_GetTypeInfoCount(This,pctinfo)
  130.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  131. #define Folder3_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  132.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  133. #define Folder3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  134.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  135. #define Folder3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  136.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  137. #define Folder3_get_Title(This,pbs)
  138.     (This)->lpVtbl -> get_Title(This,pbs)
  139. #define Folder3_get_Application(This,ppid)
  140.     (This)->lpVtbl -> get_Application(This,ppid)
  141. #define Folder3_get_Parent(This,ppid)
  142.     (This)->lpVtbl -> get_Parent(This,ppid)
  143. #define Folder3_get_ParentFolder(This,ppsf)
  144.     (This)->lpVtbl -> get_ParentFolder(This,ppsf)
  145. #define Folder3_Items(This,ppid)
  146.     (This)->lpVtbl -> Items(This,ppid)
  147. #define Folder3_ParseName(This,bName,ppid)
  148.     (This)->lpVtbl -> ParseName(This,bName,ppid)
  149. #define Folder3_NewFolder(This,bName,vOptions)
  150.     (This)->lpVtbl -> NewFolder(This,bName,vOptions)
  151. #define Folder3_MoveHere(This,vItem,vOptions)
  152.     (This)->lpVtbl -> MoveHere(This,vItem,vOptions)
  153. #define Folder3_CopyHere(This,vItem,vOptions)
  154.     (This)->lpVtbl -> CopyHere(This,vItem,vOptions)
  155. #define Folder3_GetDetailsOf(This,vItem,iColumn,pbs)
  156.     (This)->lpVtbl -> GetDetailsOf(This,vItem,iColumn,pbs)
  157. #define Folder3_get_Self(This,ppfi)
  158.     (This)->lpVtbl -> get_Self(This,ppfi)
  159. #define Folder3_get_OfflineStatus(This,pul)
  160.     (This)->lpVtbl -> get_OfflineStatus(This,pul)
  161. #define Folder3_Synchronize(This)
  162.     (This)->lpVtbl -> Synchronize(This)
  163. #define Folder3_get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade)
  164.     (This)->lpVtbl -> get_HaveToShowWebViewBarricade(This,pbHaveToShowWebViewBarricade)
  165. #define Folder3_DismissedWebViewBarricade(This)
  166.     (This)->lpVtbl -> DismissedWebViewBarricade(This)
  167. #define Folder3_get_ShowWebViewBarricade(This,pbShowWebViewBarricade)
  168.     (This)->lpVtbl -> get_ShowWebViewBarricade(This,pbShowWebViewBarricade)
  169. #define Folder3_put_ShowWebViewBarricade(This,bShowWebViewBarricade)
  170.     (This)->lpVtbl -> put_ShowWebViewBarricade(This,bShowWebViewBarricade)
  171. #endif /* COBJMACROS */
  172. #endif  /* C style interface */
  173. /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE Folder3_get_ShowWebViewBarricade_Proxy( 
  174.     Folder3 * This,
  175.     /* [retval][out] */ VARIANT_BOOL *pbShowWebViewBarricade);
  176. void __RPC_STUB Folder3_get_ShowWebViewBarricade_Stub(
  177.     IRpcStubBuffer *This,
  178.     IRpcChannelBuffer *_pRpcChannelBuffer,
  179.     PRPC_MESSAGE _pRpcMessage,
  180.     DWORD *_pdwStubPhase);
  181. /* [helpstring][propput][id] */ HRESULT STDMETHODCALLTYPE Folder3_put_ShowWebViewBarricade_Proxy( 
  182.     Folder3 * This,
  183.     /* [in] */ VARIANT_BOOL bShowWebViewBarricade);
  184. void __RPC_STUB Folder3_put_ShowWebViewBarricade_Stub(
  185.     IRpcStubBuffer *This,
  186.     IRpcChannelBuffer *_pRpcChannelBuffer,
  187.     PRPC_MESSAGE _pRpcMessage,
  188.     DWORD *_pdwStubPhase);
  189. #endif  /* __Folder3_INTERFACE_DEFINED__ */
  190. #ifndef __FolderItem2_INTERFACE_DEFINED__
  191. #define __FolderItem2_INTERFACE_DEFINED__
  192. /* interface FolderItem2 */
  193. /* [object][dual][oleautomation][helpstring][uuid] */ 
  194. EXTERN_C const IID IID_FolderItem2;
  195. #if defined(__cplusplus) && !defined(CINTERFACE)
  196.     
  197.     MIDL_INTERFACE("edc817aa-92b8-11d1-b075-00c04fc33aa5")
  198.     FolderItem2 : public FolderItem
  199.     {
  200.     public:
  201.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InvokeVerbEx( 
  202.             /* [optional][in] */ VARIANT vVerb,
  203.             /* [optional][in] */ VARIANT vArgs) = 0;
  204.         
  205.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ExtendedProperty( 
  206.             /* [in] */ BSTR bstrPropName,
  207.             /* [retval][out] */ VARIANT *pvRet) = 0;
  208.         
  209.     };
  210.     
  211. #else  /* C style interface */
  212.     typedef struct FolderItem2Vtbl
  213.     {
  214.         BEGIN_INTERFACE
  215.         
  216.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  217.             FolderItem2 * This,
  218.             /* [in] */ REFIID riid,
  219.             /* [iid_is][out] */ void **ppvObject);
  220.         
  221.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  222.             FolderItem2 * This);
  223.         
  224.         ULONG ( STDMETHODCALLTYPE *Release )( 
  225.             FolderItem2 * This);
  226.         
  227.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  228.             FolderItem2 * This,
  229.             /* [out] */ UINT *pctinfo);
  230.         
  231.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  232.             FolderItem2 * This,
  233.             /* [in] */ UINT iTInfo,
  234.             /* [in] */ LCID lcid,
  235.             /* [out] */ ITypeInfo **ppTInfo);
  236.         
  237.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  238.             FolderItem2 * This,
  239.             /* [in] */ REFIID riid,
  240.             /* [size_is][in] */ LPOLESTR *rgszNames,
  241.             /* [in] */ UINT cNames,
  242.             /* [in] */ LCID lcid,
  243.             /* [size_is][out] */ DISPID *rgDispId);
  244.         
  245.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  246.             FolderItem2 * This,
  247.             /* [in] */ DISPID dispIdMember,
  248.             /* [in] */ REFIID riid,
  249.             /* [in] */ LCID lcid,
  250.             /* [in] */ WORD wFlags,
  251.             /* [out][in] */ DISPPARAMS *pDispParams,
  252.             /* [out] */ VARIANT *pVarResult,
  253.             /* [out] */ EXCEPINFO *pExcepInfo,
  254.             /* [out] */ UINT *puArgErr);
  255.         
  256.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
  257.             FolderItem2 * This,
  258.             /* [retval][out] */ IDispatch **ppid);
  259.         
  260.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
  261.             FolderItem2 * This,
  262.             /* [retval][out] */ IDispatch **ppid);
  263.         
  264.         /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
  265.             FolderItem2 * This,
  266.             /* [retval][out] */ BSTR *pbs);
  267.         
  268.         /* [helpstring][propput][id] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
  269.             FolderItem2 * This,
  270.             /* [in] */ BSTR bs);
  271.         
  272.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
  273.             FolderItem2 * This,
  274.             /* [retval][out] */ BSTR *pbs);
  275.         
  276.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_GetLink )( 
  277.             FolderItem2 * This,
  278.             /* [retval][out] */ IDispatch **ppid);
  279.         
  280.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_GetFolder )( 
  281.             FolderItem2 * This,
  282.             /* [retval][out] */ IDispatch **ppid);
  283.         
  284.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsLink )( 
  285.             FolderItem2 * This,
  286.             /* [retval][out] */ VARIANT_BOOL *pb);
  287.         
  288.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsFolder )( 
  289.             FolderItem2 * This,
  290.             /* [retval][out] */ VARIANT_BOOL *pb);
  291.         
  292.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsFileSystem )( 
  293.             FolderItem2 * This,
  294.             /* [retval][out] */ VARIANT_BOOL *pb);
  295.         
  296.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsBrowsable )( 
  297.             FolderItem2 * This,
  298.             /* [retval][out] */ VARIANT_BOOL *pb);
  299.         
  300.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ModifyDate )( 
  301.             FolderItem2 * This,
  302.             /* [retval][out] */ DATE *pdt);
  303.         
  304.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ModifyDate )( 
  305.             FolderItem2 * This,
  306.             /* [in] */ DATE dt);
  307.         
  308.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
  309.             FolderItem2 * This,
  310.             /* [retval][out] */ LONG *pul);
  311.         
  312.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
  313.             FolderItem2 * This,
  314.             /* [retval][out] */ BSTR *pbs);
  315.         
  316.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Verbs )( 
  317.             FolderItem2 * This,
  318.             /* [retval][out] */ FolderItemVerbs **ppfic);
  319.         
  320.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InvokeVerb )( 
  321.             FolderItem2 * This,
  322.             /* [optional][in] */ VARIANT vVerb);
  323.         
  324.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InvokeVerbEx )( 
  325.             FolderItem2 * This,
  326.             /* [optional][in] */ VARIANT vVerb,
  327.             /* [optional][in] */ VARIANT vArgs);
  328.         
  329.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ExtendedProperty )( 
  330.             FolderItem2 * This,
  331.             /* [in] */ BSTR bstrPropName,
  332.             /* [retval][out] */ VARIANT *pvRet);
  333.         
  334.         END_INTERFACE
  335.     } FolderItem2Vtbl;
  336.     interface FolderItem2
  337.     {
  338.         CONST_VTBL struct FolderItem2Vtbl *lpVtbl;
  339.     };
  340.     
  341. #ifdef COBJMACROS
  342. #define FolderItem2_QueryInterface(This,riid,ppvObject)
  343.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  344. #define FolderItem2_AddRef(This)
  345.     (This)->lpVtbl -> AddRef(This)
  346. #define FolderItem2_Release(This)
  347.     (This)->lpVtbl -> Release(This)
  348. #define FolderItem2_GetTypeInfoCount(This,pctinfo)
  349.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  350. #define FolderItem2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  351.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  352. #define FolderItem2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  353.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  354. #define FolderItem2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  355.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  356. #define FolderItem2_get_Application(This,ppid)
  357.     (This)->lpVtbl -> get_Application(This,ppid)
  358. #define FolderItem2_get_Parent(This,ppid)
  359.     (This)->lpVtbl -> get_Parent(This,ppid)
  360. #define FolderItem2_get_Name(This,pbs)
  361.     (This)->lpVtbl -> get_Name(This,pbs)
  362. #define FolderItem2_put_Name(This,bs)
  363.     (This)->lpVtbl -> put_Name(This,bs)
  364. #define FolderItem2_get_Path(This,pbs)
  365.     (This)->lpVtbl -> get_Path(This,pbs)
  366. #define FolderItem2_get_GetLink(This,ppid)
  367.     (This)->lpVtbl -> get_GetLink(This,ppid)
  368. #define FolderItem2_get_GetFolder(This,ppid)
  369.     (This)->lpVtbl -> get_GetFolder(This,ppid)
  370. #define FolderItem2_get_IsLink(This,pb)
  371.     (This)->lpVtbl -> get_IsLink(This,pb)
  372. #define FolderItem2_get_IsFolder(This,pb)
  373.     (This)->lpVtbl -> get_IsFolder(This,pb)
  374. #define FolderItem2_get_IsFileSystem(This,pb)
  375.     (This)->lpVtbl -> get_IsFileSystem(This,pb)
  376. #define FolderItem2_get_IsBrowsable(This,pb)
  377.     (This)->lpVtbl -> get_IsBrowsable(This,pb)
  378. #define FolderItem2_get_ModifyDate(This,pdt)
  379.     (This)->lpVtbl -> get_ModifyDate(This,pdt)
  380. #define FolderItem2_put_ModifyDate(This,dt)
  381.     (This)->lpVtbl -> put_ModifyDate(This,dt)
  382. #define FolderItem2_get_Size(This,pul)
  383.     (This)->lpVtbl -> get_Size(This,pul)
  384. #define FolderItem2_get_Type(This,pbs)
  385.     (This)->lpVtbl -> get_Type(This,pbs)
  386. #define FolderItem2_Verbs(This,ppfic)
  387.     (This)->lpVtbl -> Verbs(This,ppfic)
  388. #define FolderItem2_InvokeVerb(This,vVerb)
  389.     (This)->lpVtbl -> InvokeVerb(This,vVerb)
  390. #define FolderItem2_InvokeVerbEx(This,vVerb,vArgs)
  391.     (This)->lpVtbl -> InvokeVerbEx(This,vVerb,vArgs)
  392. #define FolderItem2_ExtendedProperty(This,bstrPropName,pvRet)
  393.     (This)->lpVtbl -> ExtendedProperty(This,bstrPropName,pvRet)
  394. #endif /* COBJMACROS */
  395. #endif  /* C style interface */
  396. /* [helpstring] */ HRESULT STDMETHODCALLTYPE FolderItem2_InvokeVerbEx_Proxy( 
  397.     FolderItem2 * This,
  398.     /* [optional][in] */ VARIANT vVerb,
  399.     /* [optional][in] */ VARIANT vArgs);
  400. void __RPC_STUB FolderItem2_InvokeVerbEx_Stub(
  401.     IRpcStubBuffer *This,
  402.     IRpcChannelBuffer *_pRpcChannelBuffer,
  403.     PRPC_MESSAGE _pRpcMessage,
  404.     DWORD *_pdwStubPhase);
  405. /* [helpstring] */ HRESULT STDMETHODCALLTYPE FolderItem2_ExtendedProperty_Proxy( 
  406.     FolderItem2 * This,
  407.     /* [in] */ BSTR bstrPropName,
  408.     /* [retval][out] */ VARIANT *pvRet);
  409. void __RPC_STUB FolderItem2_ExtendedProperty_Stub(
  410.     IRpcStubBuffer *This,
  411.     IRpcChannelBuffer *_pRpcChannelBuffer,
  412.     PRPC_MESSAGE _pRpcMessage,
  413.     DWORD *_pdwStubPhase);
  414. #endif  /* __FolderItem2_INTERFACE_DEFINED__ */
  415. EXTERN_C const CLSID CLSID_ShellFolderItem;
  416. #ifdef __cplusplus
  417. class DECLSPEC_UUID("2fe352ea-fd1f-11d2-b1f4-00c04f8eeb3e")
  418. ShellFolderItem;
  419. #endif
  420. #ifndef __FolderItems2_INTERFACE_DEFINED__
  421. #define __FolderItems2_INTERFACE_DEFINED__
  422. /* interface FolderItems2 */
  423. /* [object][dual][oleautomation][helpstring][uuid] */ 
  424. EXTERN_C const IID IID_FolderItems2;
  425. #if defined(__cplusplus) && !defined(CINTERFACE)
  426.     
  427.     MIDL_INTERFACE("C94F0AD0-F363-11d2-A327-00C04F8EEC7F")
  428.     FolderItems2 : public FolderItems
  429.     {
  430.     public:
  431.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InvokeVerbEx( 
  432.             /* [optional][in] */ VARIANT vVerb,
  433.             /* [optional][in] */ VARIANT vArgs) = 0;
  434.         
  435.     };
  436.     
  437. #else  /* C style interface */
  438.     typedef struct FolderItems2Vtbl
  439.     {
  440.         BEGIN_INTERFACE
  441.         
  442.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  443.             FolderItems2 * This,
  444.             /* [in] */ REFIID riid,
  445.             /* [iid_is][out] */ void **ppvObject);
  446.         
  447.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  448.             FolderItems2 * This);
  449.         
  450.         ULONG ( STDMETHODCALLTYPE *Release )( 
  451.             FolderItems2 * This);
  452.         
  453.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  454.             FolderItems2 * This,
  455.             /* [out] */ UINT *pctinfo);
  456.         
  457.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  458.             FolderItems2 * This,
  459.             /* [in] */ UINT iTInfo,
  460.             /* [in] */ LCID lcid,
  461.             /* [out] */ ITypeInfo **ppTInfo);
  462.         
  463.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  464.             FolderItems2 * This,
  465.             /* [in] */ REFIID riid,
  466.             /* [size_is][in] */ LPOLESTR *rgszNames,
  467.             /* [in] */ UINT cNames,
  468.             /* [in] */ LCID lcid,
  469.             /* [size_is][out] */ DISPID *rgDispId);
  470.         
  471.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  472.             FolderItems2 * This,
  473.             /* [in] */ DISPID dispIdMember,
  474.             /* [in] */ REFIID riid,
  475.             /* [in] */ LCID lcid,
  476.             /* [in] */ WORD wFlags,
  477.             /* [out][in] */ DISPPARAMS *pDispParams,
  478.             /* [out] */ VARIANT *pVarResult,
  479.             /* [out] */ EXCEPINFO *pExcepInfo,
  480.             /* [out] */ UINT *puArgErr);
  481.         
  482.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
  483.             FolderItems2 * This,
  484.             /* [retval][out] */ long *plCount);
  485.         
  486.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
  487.             FolderItems2 * This,
  488.             /* [retval][out] */ IDispatch **ppid);
  489.         
  490.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
  491.             FolderItems2 * This,
  492.             /* [retval][out] */ IDispatch **ppid);
  493.         
  494.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
  495.             FolderItems2 * This,
  496.             /* [optional][in] */ VARIANT index,
  497.             /* [retval][out] */ FolderItem **ppid);
  498.         
  499.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *_NewEnum )( 
  500.             FolderItems2 * This,
  501.             /* [retval][out] */ IUnknown **ppunk);
  502.         
  503.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InvokeVerbEx )( 
  504.             FolderItems2 * This,
  505.             /* [optional][in] */ VARIANT vVerb,
  506.             /* [optional][in] */ VARIANT vArgs);
  507.         
  508.         END_INTERFACE
  509.     } FolderItems2Vtbl;
  510.     interface FolderItems2
  511.     {
  512.         CONST_VTBL struct FolderItems2Vtbl *lpVtbl;
  513.     };
  514.     
  515. #ifdef COBJMACROS
  516. #define FolderItems2_QueryInterface(This,riid,ppvObject)
  517.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  518. #define FolderItems2_AddRef(This)
  519.     (This)->lpVtbl -> AddRef(This)
  520. #define FolderItems2_Release(This)
  521.     (This)->lpVtbl -> Release(This)
  522. #define FolderItems2_GetTypeInfoCount(This,pctinfo)
  523.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  524. #define FolderItems2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  525.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  526. #define FolderItems2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  527.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  528. #define FolderItems2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  529.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  530. #define FolderItems2_get_Count(This,plCount)
  531.     (This)->lpVtbl -> get_Count(This,plCount)
  532. #define FolderItems2_get_Application(This,ppid)
  533.     (This)->lpVtbl -> get_Application(This,ppid)
  534. #define FolderItems2_get_Parent(This,ppid)
  535.     (This)->lpVtbl -> get_Parent(This,ppid)
  536. #define FolderItems2_Item(This,index,ppid)
  537.     (This)->lpVtbl -> Item(This,index,ppid)
  538. #define FolderItems2__NewEnum(This,ppunk)
  539.     (This)->lpVtbl -> _NewEnum(This,ppunk)
  540. #define FolderItems2_InvokeVerbEx(This,vVerb,vArgs)
  541.     (This)->lpVtbl -> InvokeVerbEx(This,vVerb,vArgs)
  542. #endif /* COBJMACROS */
  543. #endif  /* C style interface */
  544. /* [helpstring] */ HRESULT STDMETHODCALLTYPE FolderItems2_InvokeVerbEx_Proxy( 
  545.     FolderItems2 * This,
  546.     /* [optional][in] */ VARIANT vVerb,
  547.     /* [optional][in] */ VARIANT vArgs);
  548. void __RPC_STUB FolderItems2_InvokeVerbEx_Stub(
  549.     IRpcStubBuffer *This,
  550.     IRpcChannelBuffer *_pRpcChannelBuffer,
  551.     PRPC_MESSAGE _pRpcMessage,
  552.     DWORD *_pdwStubPhase);
  553. #endif  /* __FolderItems2_INTERFACE_DEFINED__ */
  554. #ifndef __FolderItems3_INTERFACE_DEFINED__
  555. #define __FolderItems3_INTERFACE_DEFINED__
  556. /* interface FolderItems3 */
  557. /* [object][dual][oleautomation][helpstring][uuid] */ 
  558. EXTERN_C const IID IID_FolderItems3;
  559. #if defined(__cplusplus) && !defined(CINTERFACE)
  560.     
  561.     MIDL_INTERFACE("eaa7c309-bbec-49d5-821d-64d966cb667f")
  562.     FolderItems3 : public FolderItems2
  563.     {
  564.     public:
  565.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Filter( 
  566.             /* [in] */ long grfFlags,
  567.             /* [in] */ BSTR bstrFileSpec) = 0;
  568.         
  569.         virtual /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE get_Verbs( 
  570.             /* [retval][out] */ FolderItemVerbs **ppfic) = 0;
  571.         
  572.     };
  573.     
  574. #else  /* C style interface */
  575.     typedef struct FolderItems3Vtbl
  576.     {
  577.         BEGIN_INTERFACE
  578.         
  579.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  580.             FolderItems3 * This,
  581.             /* [in] */ REFIID riid,
  582.             /* [iid_is][out] */ void **ppvObject);
  583.         
  584.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  585.             FolderItems3 * This);
  586.         
  587.         ULONG ( STDMETHODCALLTYPE *Release )( 
  588.             FolderItems3 * This);
  589.         
  590.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  591.             FolderItems3 * This,
  592.             /* [out] */ UINT *pctinfo);
  593.         
  594.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  595.             FolderItems3 * This,
  596.             /* [in] */ UINT iTInfo,
  597.             /* [in] */ LCID lcid,
  598.             /* [out] */ ITypeInfo **ppTInfo);
  599.         
  600.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  601.             FolderItems3 * This,
  602.             /* [in] */ REFIID riid,
  603.             /* [size_is][in] */ LPOLESTR *rgszNames,
  604.             /* [in] */ UINT cNames,
  605.             /* [in] */ LCID lcid,
  606.             /* [size_is][out] */ DISPID *rgDispId);
  607.         
  608.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  609.             FolderItems3 * This,
  610.             /* [in] */ DISPID dispIdMember,
  611.             /* [in] */ REFIID riid,
  612.             /* [in] */ LCID lcid,
  613.             /* [in] */ WORD wFlags,
  614.             /* [out][in] */ DISPPARAMS *pDispParams,
  615.             /* [out] */ VARIANT *pVarResult,
  616.             /* [out] */ EXCEPINFO *pExcepInfo,
  617.             /* [out] */ UINT *puArgErr);
  618.         
  619.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
  620.             FolderItems3 * This,
  621.             /* [retval][out] */ long *plCount);
  622.         
  623.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
  624.             FolderItems3 * This,
  625.             /* [retval][out] */ IDispatch **ppid);
  626.         
  627.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
  628.             FolderItems3 * This,
  629.             /* [retval][out] */ IDispatch **ppid);
  630.         
  631.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
  632.             FolderItems3 * This,
  633.             /* [optional][in] */ VARIANT index,
  634.             /* [retval][out] */ FolderItem **ppid);
  635.         
  636.         /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *_NewEnum )( 
  637.             FolderItems3 * This,
  638.             /* [retval][out] */ IUnknown **ppunk);
  639.         
  640.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InvokeVerbEx )( 
  641.             FolderItems3 * This,
  642.             /* [optional][in] */ VARIANT vVerb,
  643.             /* [optional][in] */ VARIANT vArgs);
  644.         
  645.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Filter )( 
  646.             FolderItems3 * This,
  647.             /* [in] */ long grfFlags,
  648.             /* [in] */ BSTR bstrFileSpec);
  649.         
  650.         /* [helpstring][propget][id] */ HRESULT ( STDMETHODCALLTYPE *get_Verbs )( 
  651.             FolderItems3 * This,
  652.             /* [retval][out] */ FolderItemVerbs **ppfic);
  653.         
  654.         END_INTERFACE
  655.     } FolderItems3Vtbl;
  656.     interface FolderItems3
  657.     {
  658.         CONST_VTBL struct FolderItems3Vtbl *lpVtbl;
  659.     };
  660.     
  661. #ifdef COBJMACROS
  662. #define FolderItems3_QueryInterface(This,riid,ppvObject)
  663.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  664. #define FolderItems3_AddRef(This)
  665.     (This)->lpVtbl -> AddRef(This)
  666. #define FolderItems3_Release(This)
  667.     (This)->lpVtbl -> Release(This)
  668. #define FolderItems3_GetTypeInfoCount(This,pctinfo)
  669.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  670. #define FolderItems3_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  671.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  672. #define FolderItems3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  673.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  674. #define FolderItems3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  675.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  676. #define FolderItems3_get_Count(This,plCount)
  677.     (This)->lpVtbl -> get_Count(This,plCount)
  678. #define FolderItems3_get_Application(This,ppid)
  679.     (This)->lpVtbl -> get_Application(This,ppid)
  680. #define FolderItems3_get_Parent(This,ppid)
  681.     (This)->lpVtbl -> get_Parent(This,ppid)
  682. #define FolderItems3_Item(This,index,ppid)
  683.     (This)->lpVtbl -> Item(This,index,ppid)
  684. #define FolderItems3__NewEnum(This,ppunk)
  685.     (This)->lpVtbl -> _NewEnum(This,ppunk)
  686. #define FolderItems3_InvokeVerbEx(This,vVerb,vArgs)
  687.     (This)->lpVtbl -> InvokeVerbEx(This,vVerb,vArgs)
  688. #define FolderItems3_Filter(This,grfFlags,bstrFileSpec)
  689.     (This)->lpVtbl -> Filter(This,grfFlags,bstrFileSpec)
  690. #define FolderItems3_get_Verbs(This,ppfic)
  691.     (This)->lpVtbl -> get_Verbs(This,ppfic)
  692. #endif /* COBJMACROS */
  693. #endif  /* C style interface */
  694. /* [helpstring] */ HRESULT STDMETHODCALLTYPE FolderItems3_Filter_Proxy( 
  695.     FolderItems3 * This,
  696.     /* [in] */ long grfFlags,
  697.     /* [in] */ BSTR bstrFileSpec);
  698. void __RPC_STUB FolderItems3_Filter_Stub(
  699.     IRpcStubBuffer *This,
  700.     IRpcChannelBuffer *_pRpcChannelBuffer,
  701.     PRPC_MESSAGE _pRpcMessage,
  702.     DWORD *_pdwStubPhase);
  703. /* [helpstring][propget][id] */ HRESULT STDMETHODCALLTYPE FolderItems3_get_Verbs_Proxy( 
  704.     FolderItems3 * This,
  705.     /* [retval][out] */ FolderItemVerbs **ppfic);
  706. void __RPC_STUB FolderItems3_get_Verbs_Stub(
  707.     IRpcStubBuffer *This,
  708.     IRpcChannelBuffer *_pRpcChannelBuffer,
  709.     PRPC_MESSAGE _pRpcMessage,
  710.     DWORD *_pdwStubPhase);
  711. #endif  /* __FolderItems3_INTERFACE_DEFINED__ */
  712. #ifndef __IShellLinkDual_INTERFACE_DEFINED__
  713. #define __IShellLinkDual_INTERFACE_DEFINED__
  714. /* interface IShellLinkDual */
  715. /* [object][hidden][dual][oleautomation][helpstring][uuid] */ 
  716. EXTERN_C const IID IID_IShellLinkDual;
  717. #if defined(__cplusplus) && !defined(CINTERFACE)
  718.     
  719.     MIDL_INTERFACE("88A05C00-F000-11CE-8350-444553540000")
  720.     IShellLinkDual : public IDispatch
  721.     {
  722.     public:
  723.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Path( 
  724.             /* [retval][out] */ BSTR *pbs) = 0;
  725.         
  726.         virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Path( 
  727.             /* [in] */ BSTR bs) = 0;
  728.         
  729.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Description( 
  730.             /* [retval][out] */ BSTR *pbs) = 0;
  731.         
  732.         virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Description( 
  733.             /* [in] */ BSTR bs) = 0;
  734.         
  735.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_WorkingDirectory( 
  736.             /* [retval][out] */ BSTR *pbs) = 0;
  737.         
  738.         virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_WorkingDirectory( 
  739.             /* [in] */ BSTR bs) = 0;
  740.         
  741.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Arguments( 
  742.             /* [retval][out] */ BSTR *pbs) = 0;
  743.         
  744.         virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Arguments( 
  745.             /* [in] */ BSTR bs) = 0;
  746.         
  747.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Hotkey( 
  748.             /* [retval][out] */ int *piHK) = 0;
  749.         
  750.         virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_Hotkey( 
  751.             /* [in] */ int iHK) = 0;
  752.         
  753.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_ShowCommand( 
  754.             /* [retval][out] */ int *piShowCommand) = 0;
  755.         
  756.         virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_ShowCommand( 
  757.             /* [in] */ int iShowCommand) = 0;
  758.         
  759.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Resolve( 
  760.             /* [in] */ int fFlags) = 0;
  761.         
  762.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetIconLocation( 
  763.             /* [out] */ BSTR *pbs,
  764.             /* [retval][out] */ int *piIcon) = 0;
  765.         
  766.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetIconLocation( 
  767.             /* [in] */ BSTR bs,
  768.             /* [in] */ int iIcon) = 0;
  769.         
  770.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Save( 
  771.             /* [optional][in] */ VARIANT vWhere) = 0;
  772.         
  773.     };
  774.     
  775. #else  /* C style interface */
  776.     typedef struct IShellLinkDualVtbl
  777.     {
  778.         BEGIN_INTERFACE
  779.         
  780.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  781.             IShellLinkDual * This,
  782.             /* [in] */ REFIID riid,
  783.             /* [iid_is][out] */ void **ppvObject);
  784.         
  785.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  786.             IShellLinkDual * This);
  787.         
  788.         ULONG ( STDMETHODCALLTYPE *Release )( 
  789.             IShellLinkDual * This);
  790.         
  791.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  792.             IShellLinkDual * This,
  793.             /* [out] */ UINT *pctinfo);
  794.         
  795.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  796.             IShellLinkDual * This,
  797.             /* [in] */ UINT iTInfo,
  798.             /* [in] */ LCID lcid,
  799.             /* [out] */ ITypeInfo **ppTInfo);
  800.         
  801.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  802.             IShellLinkDual * This,
  803.             /* [in] */ REFIID riid,
  804.             /* [size_is][in] */ LPOLESTR *rgszNames,
  805.             /* [in] */ UINT cNames,
  806.             /* [in] */ LCID lcid,
  807.             /* [size_is][out] */ DISPID *rgDispId);
  808.         
  809.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  810.             IShellLinkDual * This,
  811.             /* [in] */ DISPID dispIdMember,
  812.             /* [in] */ REFIID riid,
  813.             /* [in] */ LCID lcid,
  814.             /* [in] */ WORD wFlags,
  815.             /* [out][in] */ DISPPARAMS *pDispParams,
  816.             /* [out] */ VARIANT *pVarResult,
  817.             /* [out] */ EXCEPINFO *pExcepInfo,
  818.             /* [out] */ UINT *puArgErr);
  819.         
  820.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
  821.             IShellLinkDual * This,
  822.             /* [retval][out] */ BSTR *pbs);
  823.         
  824.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Path )( 
  825.             IShellLinkDual * This,
  826.             /* [in] */ BSTR bs);
  827.         
  828.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
  829.             IShellLinkDual * This,
  830.             /* [retval][out] */ BSTR *pbs);
  831.         
  832.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Description )( 
  833.             IShellLinkDual * This,
  834.             /* [in] */ BSTR bs);
  835.         
  836.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_WorkingDirectory )( 
  837.             IShellLinkDual * This,
  838.             /* [retval][out] */ BSTR *pbs);
  839.         
  840.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_WorkingDirectory )( 
  841.             IShellLinkDual * This,
  842.             /* [in] */ BSTR bs);
  843.         
  844.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Arguments )( 
  845.             IShellLinkDual * This,
  846.             /* [retval][out] */ BSTR *pbs);
  847.         
  848.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Arguments )( 
  849.             IShellLinkDual * This,
  850.             /* [in] */ BSTR bs);
  851.         
  852.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Hotkey )( 
  853.             IShellLinkDual * This,
  854.             /* [retval][out] */ int *piHK);
  855.         
  856.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Hotkey )( 
  857.             IShellLinkDual * This,
  858.             /* [in] */ int iHK);
  859.         
  860.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowCommand )( 
  861.             IShellLinkDual * This,
  862.             /* [retval][out] */ int *piShowCommand);
  863.         
  864.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowCommand )( 
  865.             IShellLinkDual * This,
  866.             /* [in] */ int iShowCommand);
  867.         
  868.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Resolve )( 
  869.             IShellLinkDual * This,
  870.             /* [in] */ int fFlags);
  871.         
  872.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetIconLocation )( 
  873.             IShellLinkDual * This,
  874.             /* [out] */ BSTR *pbs,
  875.             /* [retval][out] */ int *piIcon);
  876.         
  877.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetIconLocation )( 
  878.             IShellLinkDual * This,
  879.             /* [in] */ BSTR bs,
  880.             /* [in] */ int iIcon);
  881.         
  882.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Save )( 
  883.             IShellLinkDual * This,
  884.             /* [optional][in] */ VARIANT vWhere);
  885.         
  886.         END_INTERFACE
  887.     } IShellLinkDualVtbl;
  888.     interface IShellLinkDual
  889.     {
  890.         CONST_VTBL struct IShellLinkDualVtbl *lpVtbl;
  891.     };
  892.     
  893. #ifdef COBJMACROS
  894. #define IShellLinkDual_QueryInterface(This,riid,ppvObject)
  895.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  896. #define IShellLinkDual_AddRef(This)
  897.     (This)->lpVtbl -> AddRef(This)
  898. #define IShellLinkDual_Release(This)
  899.     (This)->lpVtbl -> Release(This)
  900. #define IShellLinkDual_GetTypeInfoCount(This,pctinfo)
  901.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  902. #define IShellLinkDual_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  903.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  904. #define IShellLinkDual_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  905.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  906. #define IShellLinkDual_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  907.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  908. #define IShellLinkDual_get_Path(This,pbs)
  909.     (This)->lpVtbl -> get_Path(This,pbs)
  910. #define IShellLinkDual_put_Path(This,bs)
  911.     (This)->lpVtbl -> put_Path(This,bs)
  912. #define IShellLinkDual_get_Description(This,pbs)
  913.     (This)->lpVtbl -> get_Description(This,pbs)
  914. #define IShellLinkDual_put_Description(This,bs)
  915.     (This)->lpVtbl -> put_Description(This,bs)
  916. #define IShellLinkDual_get_WorkingDirectory(This,pbs)
  917.     (This)->lpVtbl -> get_WorkingDirectory(This,pbs)
  918. #define IShellLinkDual_put_WorkingDirectory(This,bs)
  919.     (This)->lpVtbl -> put_WorkingDirectory(This,bs)
  920. #define IShellLinkDual_get_Arguments(This,pbs)
  921.     (This)->lpVtbl -> get_Arguments(This,pbs)
  922. #define IShellLinkDual_put_Arguments(This,bs)
  923.     (This)->lpVtbl -> put_Arguments(This,bs)
  924. #define IShellLinkDual_get_Hotkey(This,piHK)
  925.     (This)->lpVtbl -> get_Hotkey(This,piHK)
  926. #define IShellLinkDual_put_Hotkey(This,iHK)
  927.     (This)->lpVtbl -> put_Hotkey(This,iHK)
  928. #define IShellLinkDual_get_ShowCommand(This,piShowCommand)
  929.     (This)->lpVtbl -> get_ShowCommand(This,piShowCommand)
  930. #define IShellLinkDual_put_ShowCommand(This,iShowCommand)
  931.     (This)->lpVtbl -> put_ShowCommand(This,iShowCommand)
  932. #define IShellLinkDual_Resolve(This,fFlags)
  933.     (This)->lpVtbl -> Resolve(This,fFlags)
  934. #define IShellLinkDual_GetIconLocation(This,pbs,piIcon)
  935.     (This)->lpVtbl -> GetIconLocation(This,pbs,piIcon)
  936. #define IShellLinkDual_SetIconLocation(This,bs,iIcon)
  937.     (This)->lpVtbl -> SetIconLocation(This,bs,iIcon)
  938. #define IShellLinkDual_Save(This,vWhere)
  939.     (This)->lpVtbl -> Save(This,vWhere)
  940. #endif /* COBJMACROS */
  941. #endif  /* C style interface */
  942. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Path_Proxy( 
  943.     IShellLinkDual * This,
  944.     /* [retval][out] */ BSTR *pbs);
  945. void __RPC_STUB IShellLinkDual_get_Path_Stub(
  946.     IRpcStubBuffer *This,
  947.     IRpcChannelBuffer *_pRpcChannelBuffer,
  948.     PRPC_MESSAGE _pRpcMessage,
  949.     DWORD *_pdwStubPhase);
  950. /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Path_Proxy( 
  951.     IShellLinkDual * This,
  952.     /* [in] */ BSTR bs);
  953. void __RPC_STUB IShellLinkDual_put_Path_Stub(
  954.     IRpcStubBuffer *This,
  955.     IRpcChannelBuffer *_pRpcChannelBuffer,
  956.     PRPC_MESSAGE _pRpcMessage,
  957.     DWORD *_pdwStubPhase);
  958. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Description_Proxy( 
  959.     IShellLinkDual * This,
  960.     /* [retval][out] */ BSTR *pbs);
  961. void __RPC_STUB IShellLinkDual_get_Description_Stub(
  962.     IRpcStubBuffer *This,
  963.     IRpcChannelBuffer *_pRpcChannelBuffer,
  964.     PRPC_MESSAGE _pRpcMessage,
  965.     DWORD *_pdwStubPhase);
  966. /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Description_Proxy( 
  967.     IShellLinkDual * This,
  968.     /* [in] */ BSTR bs);
  969. void __RPC_STUB IShellLinkDual_put_Description_Stub(
  970.     IRpcStubBuffer *This,
  971.     IRpcChannelBuffer *_pRpcChannelBuffer,
  972.     PRPC_MESSAGE _pRpcMessage,
  973.     DWORD *_pdwStubPhase);
  974. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_get_WorkingDirectory_Proxy( 
  975.     IShellLinkDual * This,
  976.     /* [retval][out] */ BSTR *pbs);
  977. void __RPC_STUB IShellLinkDual_get_WorkingDirectory_Stub(
  978.     IRpcStubBuffer *This,
  979.     IRpcChannelBuffer *_pRpcChannelBuffer,
  980.     PRPC_MESSAGE _pRpcMessage,
  981.     DWORD *_pdwStubPhase);
  982. /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_put_WorkingDirectory_Proxy( 
  983.     IShellLinkDual * This,
  984.     /* [in] */ BSTR bs);
  985. void __RPC_STUB IShellLinkDual_put_WorkingDirectory_Stub(
  986.     IRpcStubBuffer *This,
  987.     IRpcChannelBuffer *_pRpcChannelBuffer,
  988.     PRPC_MESSAGE _pRpcMessage,
  989.     DWORD *_pdwStubPhase);
  990. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Arguments_Proxy( 
  991.     IShellLinkDual * This,
  992.     /* [retval][out] */ BSTR *pbs);
  993. void __RPC_STUB IShellLinkDual_get_Arguments_Stub(
  994.     IRpcStubBuffer *This,
  995.     IRpcChannelBuffer *_pRpcChannelBuffer,
  996.     PRPC_MESSAGE _pRpcMessage,
  997.     DWORD *_pdwStubPhase);
  998. /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Arguments_Proxy( 
  999.     IShellLinkDual * This,
  1000.     /* [in] */ BSTR bs);
  1001. void __RPC_STUB IShellLinkDual_put_Arguments_Stub(
  1002.     IRpcStubBuffer *This,
  1003.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1004.     PRPC_MESSAGE _pRpcMessage,
  1005.     DWORD *_pdwStubPhase);
  1006. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_get_Hotkey_Proxy( 
  1007.     IShellLinkDual * This,
  1008.     /* [retval][out] */ int *piHK);
  1009. void __RPC_STUB IShellLinkDual_get_Hotkey_Stub(
  1010.     IRpcStubBuffer *This,
  1011.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1012.     PRPC_MESSAGE _pRpcMessage,
  1013.     DWORD *_pdwStubPhase);
  1014. /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_put_Hotkey_Proxy( 
  1015.     IShellLinkDual * This,
  1016.     /* [in] */ int iHK);
  1017. void __RPC_STUB IShellLinkDual_put_Hotkey_Stub(
  1018.     IRpcStubBuffer *This,
  1019.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1020.     PRPC_MESSAGE _pRpcMessage,
  1021.     DWORD *_pdwStubPhase);
  1022. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_get_ShowCommand_Proxy( 
  1023.     IShellLinkDual * This,
  1024.     /* [retval][out] */ int *piShowCommand);
  1025. void __RPC_STUB IShellLinkDual_get_ShowCommand_Stub(
  1026.     IRpcStubBuffer *This,
  1027.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1028.     PRPC_MESSAGE _pRpcMessage,
  1029.     DWORD *_pdwStubPhase);
  1030. /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_put_ShowCommand_Proxy( 
  1031.     IShellLinkDual * This,
  1032.     /* [in] */ int iShowCommand);
  1033. void __RPC_STUB IShellLinkDual_put_ShowCommand_Stub(
  1034.     IRpcStubBuffer *This,
  1035.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1036.     PRPC_MESSAGE _pRpcMessage,
  1037.     DWORD *_pdwStubPhase);
  1038. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_Resolve_Proxy( 
  1039.     IShellLinkDual * This,
  1040.     /* [in] */ int fFlags);
  1041. void __RPC_STUB IShellLinkDual_Resolve_Stub(
  1042.     IRpcStubBuffer *This,
  1043.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1044.     PRPC_MESSAGE _pRpcMessage,
  1045.     DWORD *_pdwStubPhase);
  1046. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_GetIconLocation_Proxy( 
  1047.     IShellLinkDual * This,
  1048.     /* [out] */ BSTR *pbs,
  1049.     /* [retval][out] */ int *piIcon);
  1050. void __RPC_STUB IShellLinkDual_GetIconLocation_Stub(
  1051.     IRpcStubBuffer *This,
  1052.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1053.     PRPC_MESSAGE _pRpcMessage,
  1054.     DWORD *_pdwStubPhase);
  1055. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_SetIconLocation_Proxy( 
  1056.     IShellLinkDual * This,
  1057.     /* [in] */ BSTR bs,
  1058.     /* [in] */ int iIcon);
  1059. void __RPC_STUB IShellLinkDual_SetIconLocation_Stub(
  1060.     IRpcStubBuffer *This,
  1061.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1062.     PRPC_MESSAGE _pRpcMessage,
  1063.     DWORD *_pdwStubPhase);
  1064. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellLinkDual_Save_Proxy( 
  1065.     IShellLinkDual * This,
  1066.     /* [optional][in] */ VARIANT vWhere);
  1067. void __RPC_STUB IShellLinkDual_Save_Stub(
  1068.     IRpcStubBuffer *This,
  1069.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1070.     PRPC_MESSAGE _pRpcMessage,
  1071.     DWORD *_pdwStubPhase);
  1072. #endif  /* __IShellLinkDual_INTERFACE_DEFINED__ */
  1073. #ifndef __IShellLinkDual2_INTERFACE_DEFINED__
  1074. #define __IShellLinkDual2_INTERFACE_DEFINED__
  1075. /* interface IShellLinkDual2 */
  1076. /* [object][hidden][dual][oleautomation][helpstring][uuid] */ 
  1077. EXTERN_C const IID IID_IShellLinkDual2;
  1078. #if defined(__cplusplus) && !defined(CINTERFACE)
  1079.     
  1080.     MIDL_INTERFACE("317EE249-F12E-11d2-B1E4-00C04F8EEB3E")
  1081.     IShellLinkDual2 : public IShellLinkDual
  1082.     {
  1083.     public:
  1084.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Target( 
  1085.             /* [retval][out] */ FolderItem **ppfi) = 0;
  1086.         
  1087.     };
  1088.     
  1089. #else  /* C style interface */
  1090.     typedef struct IShellLinkDual2Vtbl
  1091.     {
  1092.         BEGIN_INTERFACE
  1093.         
  1094.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1095.             IShellLinkDual2 * This,
  1096.             /* [in] */ REFIID riid,
  1097.             /* [iid_is][out] */ void **ppvObject);
  1098.         
  1099.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1100.             IShellLinkDual2 * This);
  1101.         
  1102.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1103.             IShellLinkDual2 * This);
  1104.         
  1105.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  1106.             IShellLinkDual2 * This,
  1107.             /* [out] */ UINT *pctinfo);
  1108.         
  1109.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  1110.             IShellLinkDual2 * This,
  1111.             /* [in] */ UINT iTInfo,
  1112.             /* [in] */ LCID lcid,
  1113.             /* [out] */ ITypeInfo **ppTInfo);
  1114.         
  1115.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  1116.             IShellLinkDual2 * This,
  1117.             /* [in] */ REFIID riid,
  1118.             /* [size_is][in] */ LPOLESTR *rgszNames,
  1119.             /* [in] */ UINT cNames,
  1120.             /* [in] */ LCID lcid,
  1121.             /* [size_is][out] */ DISPID *rgDispId);
  1122.         
  1123.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  1124.             IShellLinkDual2 * This,
  1125.             /* [in] */ DISPID dispIdMember,
  1126.             /* [in] */ REFIID riid,
  1127.             /* [in] */ LCID lcid,
  1128.             /* [in] */ WORD wFlags,
  1129.             /* [out][in] */ DISPPARAMS *pDispParams,
  1130.             /* [out] */ VARIANT *pVarResult,
  1131.             /* [out] */ EXCEPINFO *pExcepInfo,
  1132.             /* [out] */ UINT *puArgErr);
  1133.         
  1134.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Path )( 
  1135.             IShellLinkDual2 * This,
  1136.             /* [retval][out] */ BSTR *pbs);
  1137.         
  1138.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Path )( 
  1139.             IShellLinkDual2 * This,
  1140.             /* [in] */ BSTR bs);
  1141.         
  1142.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Description )( 
  1143.             IShellLinkDual2 * This,
  1144.             /* [retval][out] */ BSTR *pbs);
  1145.         
  1146.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Description )( 
  1147.             IShellLinkDual2 * This,
  1148.             /* [in] */ BSTR bs);
  1149.         
  1150.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_WorkingDirectory )( 
  1151.             IShellLinkDual2 * This,
  1152.             /* [retval][out] */ BSTR *pbs);
  1153.         
  1154.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_WorkingDirectory )( 
  1155.             IShellLinkDual2 * This,
  1156.             /* [in] */ BSTR bs);
  1157.         
  1158.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Arguments )( 
  1159.             IShellLinkDual2 * This,
  1160.             /* [retval][out] */ BSTR *pbs);
  1161.         
  1162.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Arguments )( 
  1163.             IShellLinkDual2 * This,
  1164.             /* [in] */ BSTR bs);
  1165.         
  1166.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Hotkey )( 
  1167.             IShellLinkDual2 * This,
  1168.             /* [retval][out] */ int *piHK);
  1169.         
  1170.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Hotkey )( 
  1171.             IShellLinkDual2 * This,
  1172.             /* [in] */ int iHK);
  1173.         
  1174.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ShowCommand )( 
  1175.             IShellLinkDual2 * This,
  1176.             /* [retval][out] */ int *piShowCommand);
  1177.         
  1178.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ShowCommand )( 
  1179.             IShellLinkDual2 * This,
  1180.             /* [in] */ int iShowCommand);
  1181.         
  1182.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Resolve )( 
  1183.             IShellLinkDual2 * This,
  1184.             /* [in] */ int fFlags);
  1185.         
  1186.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetIconLocation )( 
  1187.             IShellLinkDual2 * This,
  1188.             /* [out] */ BSTR *pbs,
  1189.             /* [retval][out] */ int *piIcon);
  1190.         
  1191.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetIconLocation )( 
  1192.             IShellLinkDual2 * This,
  1193.             /* [in] */ BSTR bs,
  1194.             /* [in] */ int iIcon);
  1195.         
  1196.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Save )( 
  1197.             IShellLinkDual2 * This,
  1198.             /* [optional][in] */ VARIANT vWhere);
  1199.         
  1200.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Target )( 
  1201.             IShellLinkDual2 * This,
  1202.             /* [retval][out] */ FolderItem **ppfi);
  1203.         
  1204.         END_INTERFACE
  1205.     } IShellLinkDual2Vtbl;
  1206.     interface IShellLinkDual2
  1207.     {
  1208.         CONST_VTBL struct IShellLinkDual2Vtbl *lpVtbl;
  1209.     };
  1210.     
  1211. #ifdef COBJMACROS
  1212. #define IShellLinkDual2_QueryInterface(This,riid,ppvObject)
  1213.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1214. #define IShellLinkDual2_AddRef(This)
  1215.     (This)->lpVtbl -> AddRef(This)
  1216. #define IShellLinkDual2_Release(This)
  1217.     (This)->lpVtbl -> Release(This)
  1218. #define IShellLinkDual2_GetTypeInfoCount(This,pctinfo)
  1219.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  1220. #define IShellLinkDual2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1221.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1222. #define IShellLinkDual2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1223.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1224. #define IShellLinkDual2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1225.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1226. #define IShellLinkDual2_get_Path(This,pbs)
  1227.     (This)->lpVtbl -> get_Path(This,pbs)
  1228. #define IShellLinkDual2_put_Path(This,bs)
  1229.     (This)->lpVtbl -> put_Path(This,bs)
  1230. #define IShellLinkDual2_get_Description(This,pbs)
  1231.     (This)->lpVtbl -> get_Description(This,pbs)
  1232. #define IShellLinkDual2_put_Description(This,bs)
  1233.     (This)->lpVtbl -> put_Description(This,bs)
  1234. #define IShellLinkDual2_get_WorkingDirectory(This,pbs)
  1235.     (This)->lpVtbl -> get_WorkingDirectory(This,pbs)
  1236. #define IShellLinkDual2_put_WorkingDirectory(This,bs)
  1237.     (This)->lpVtbl -> put_WorkingDirectory(This,bs)
  1238. #define IShellLinkDual2_get_Arguments(This,pbs)
  1239.     (This)->lpVtbl -> get_Arguments(This,pbs)
  1240. #define IShellLinkDual2_put_Arguments(This,bs)
  1241.     (This)->lpVtbl -> put_Arguments(This,bs)
  1242. #define IShellLinkDual2_get_Hotkey(This,piHK)
  1243.     (This)->lpVtbl -> get_Hotkey(This,piHK)
  1244. #define IShellLinkDual2_put_Hotkey(This,iHK)
  1245.     (This)->lpVtbl -> put_Hotkey(This,iHK)
  1246. #define IShellLinkDual2_get_ShowCommand(This,piShowCommand)
  1247.     (This)->lpVtbl -> get_ShowCommand(This,piShowCommand)
  1248. #define IShellLinkDual2_put_ShowCommand(This,iShowCommand)
  1249.     (This)->lpVtbl -> put_ShowCommand(This,iShowCommand)
  1250. #define IShellLinkDual2_Resolve(This,fFlags)
  1251.     (This)->lpVtbl -> Resolve(This,fFlags)
  1252. #define IShellLinkDual2_GetIconLocation(This,pbs,piIcon)
  1253.     (This)->lpVtbl -> GetIconLocation(This,pbs,piIcon)
  1254. #define IShellLinkDual2_SetIconLocation(This,bs,iIcon)
  1255.     (This)->lpVtbl -> SetIconLocation(This,bs,iIcon)
  1256. #define IShellLinkDual2_Save(This,vWhere)
  1257.     (This)->lpVtbl -> Save(This,vWhere)
  1258. #define IShellLinkDual2_get_Target(This,ppfi)
  1259.     (This)->lpVtbl -> get_Target(This,ppfi)
  1260. #endif /* COBJMACROS */
  1261. #endif  /* C style interface */
  1262. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellLinkDual2_get_Target_Proxy( 
  1263.     IShellLinkDual2 * This,
  1264.     /* [retval][out] */ FolderItem **ppfi);
  1265. void __RPC_STUB IShellLinkDual2_get_Target_Stub(
  1266.     IRpcStubBuffer *This,
  1267.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1268.     PRPC_MESSAGE _pRpcMessage,
  1269.     DWORD *_pdwStubPhase);
  1270. #endif  /* __IShellLinkDual2_INTERFACE_DEFINED__ */
  1271. EXTERN_C const CLSID CLSID_ShellLinkObject;
  1272. #ifdef __cplusplus
  1273. class DECLSPEC_UUID("11219420-1768-11d1-95BE-00609797EA4F")
  1274. ShellLinkObject;
  1275. #endif
  1276. #ifndef __IShellFolderViewDual_INTERFACE_DEFINED__
  1277. #define __IShellFolderViewDual_INTERFACE_DEFINED__
  1278. /* interface IShellFolderViewDual */
  1279. /* [object][dual][hidden][oleautomation][helpstring][uuid] */ 
  1280. EXTERN_C const IID IID_IShellFolderViewDual;
  1281. #if defined(__cplusplus) && !defined(CINTERFACE)
  1282.     
  1283.     MIDL_INTERFACE("E7A1AF80-4D96-11CF-960C-0080C7F4EE85")
  1284.     IShellFolderViewDual : public IDispatch
  1285.     {
  1286.     public:
  1287.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Application( 
  1288.             /* [retval][out] */ IDispatch **ppid) = 0;
  1289.         
  1290.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
  1291.             /* [retval][out] */ IDispatch **ppid) = 0;
  1292.         
  1293.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Folder( 
  1294.             /* [retval][out] */ Folder **ppid) = 0;
  1295.         
  1296.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SelectedItems( 
  1297.             /* [retval][out] */ FolderItems **ppid) = 0;
  1298.         
  1299.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_FocusedItem( 
  1300.             /* [retval][out] */ FolderItem **ppid) = 0;
  1301.         
  1302.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SelectItem( 
  1303.             /* [in] */ VARIANT *pvfi,
  1304.             /* [in] */ int dwFlags) = 0;
  1305.         
  1306.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE PopupItemMenu( 
  1307.             /* [in] */ FolderItem *pfi,
  1308.             /* [optional][in] */ VARIANT vx,
  1309.             /* [optional][in] */ VARIANT vy,
  1310.             /* [retval][out] */ BSTR *pbs) = 0;
  1311.         
  1312.         virtual /* [helpcontext][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Script( 
  1313.             /* [retval][out] */ IDispatch **ppDisp) = 0;
  1314.         
  1315.         virtual /* [helpcontext][helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_ViewOptions( 
  1316.             /* [retval][out] */ long *plViewOptions) = 0;
  1317.         
  1318.     };
  1319.     
  1320. #else  /* C style interface */
  1321.     typedef struct IShellFolderViewDualVtbl
  1322.     {
  1323.         BEGIN_INTERFACE
  1324.         
  1325.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1326.             IShellFolderViewDual * This,
  1327.             /* [in] */ REFIID riid,
  1328.             /* [iid_is][out] */ void **ppvObject);
  1329.         
  1330.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1331.             IShellFolderViewDual * This);
  1332.         
  1333.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1334.             IShellFolderViewDual * This);
  1335.         
  1336.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  1337.             IShellFolderViewDual * This,
  1338.             /* [out] */ UINT *pctinfo);
  1339.         
  1340.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  1341.             IShellFolderViewDual * This,
  1342.             /* [in] */ UINT iTInfo,
  1343.             /* [in] */ LCID lcid,
  1344.             /* [out] */ ITypeInfo **ppTInfo);
  1345.         
  1346.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  1347.             IShellFolderViewDual * This,
  1348.             /* [in] */ REFIID riid,
  1349.             /* [size_is][in] */ LPOLESTR *rgszNames,
  1350.             /* [in] */ UINT cNames,
  1351.             /* [in] */ LCID lcid,
  1352.             /* [size_is][out] */ DISPID *rgDispId);
  1353.         
  1354.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  1355.             IShellFolderViewDual * This,
  1356.             /* [in] */ DISPID dispIdMember,
  1357.             /* [in] */ REFIID riid,
  1358.             /* [in] */ LCID lcid,
  1359.             /* [in] */ WORD wFlags,
  1360.             /* [out][in] */ DISPPARAMS *pDispParams,
  1361.             /* [out] */ VARIANT *pVarResult,
  1362.             /* [out] */ EXCEPINFO *pExcepInfo,
  1363.             /* [out] */ UINT *puArgErr);
  1364.         
  1365.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
  1366.             IShellFolderViewDual * This,
  1367.             /* [retval][out] */ IDispatch **ppid);
  1368.         
  1369.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
  1370.             IShellFolderViewDual * This,
  1371.             /* [retval][out] */ IDispatch **ppid);
  1372.         
  1373.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Folder )( 
  1374.             IShellFolderViewDual * This,
  1375.             /* [retval][out] */ Folder **ppid);
  1376.         
  1377.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SelectedItems )( 
  1378.             IShellFolderViewDual * This,
  1379.             /* [retval][out] */ FolderItems **ppid);
  1380.         
  1381.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FocusedItem )( 
  1382.             IShellFolderViewDual * This,
  1383.             /* [retval][out] */ FolderItem **ppid);
  1384.         
  1385.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SelectItem )( 
  1386.             IShellFolderViewDual * This,
  1387.             /* [in] */ VARIANT *pvfi,
  1388.             /* [in] */ int dwFlags);
  1389.         
  1390.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *PopupItemMenu )( 
  1391.             IShellFolderViewDual * This,
  1392.             /* [in] */ FolderItem *pfi,
  1393.             /* [optional][in] */ VARIANT vx,
  1394.             /* [optional][in] */ VARIANT vy,
  1395.             /* [retval][out] */ BSTR *pbs);
  1396.         
  1397.         /* [helpcontext][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Script )( 
  1398.             IShellFolderViewDual * This,
  1399.             /* [retval][out] */ IDispatch **ppDisp);
  1400.         
  1401.         /* [helpcontext][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ViewOptions )( 
  1402.             IShellFolderViewDual * This,
  1403.             /* [retval][out] */ long *plViewOptions);
  1404.         
  1405.         END_INTERFACE
  1406.     } IShellFolderViewDualVtbl;
  1407.     interface IShellFolderViewDual
  1408.     {
  1409.         CONST_VTBL struct IShellFolderViewDualVtbl *lpVtbl;
  1410.     };
  1411.     
  1412. #ifdef COBJMACROS
  1413. #define IShellFolderViewDual_QueryInterface(This,riid,ppvObject)
  1414.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1415. #define IShellFolderViewDual_AddRef(This)
  1416.     (This)->lpVtbl -> AddRef(This)
  1417. #define IShellFolderViewDual_Release(This)
  1418.     (This)->lpVtbl -> Release(This)
  1419. #define IShellFolderViewDual_GetTypeInfoCount(This,pctinfo)
  1420.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  1421. #define IShellFolderViewDual_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1422.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1423. #define IShellFolderViewDual_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1424.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1425. #define IShellFolderViewDual_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1426.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1427. #define IShellFolderViewDual_get_Application(This,ppid)
  1428.     (This)->lpVtbl -> get_Application(This,ppid)
  1429. #define IShellFolderViewDual_get_Parent(This,ppid)
  1430.     (This)->lpVtbl -> get_Parent(This,ppid)
  1431. #define IShellFolderViewDual_get_Folder(This,ppid)
  1432.     (This)->lpVtbl -> get_Folder(This,ppid)
  1433. #define IShellFolderViewDual_SelectedItems(This,ppid)
  1434.     (This)->lpVtbl -> SelectedItems(This,ppid)
  1435. #define IShellFolderViewDual_get_FocusedItem(This,ppid)
  1436.     (This)->lpVtbl -> get_FocusedItem(This,ppid)
  1437. #define IShellFolderViewDual_SelectItem(This,pvfi,dwFlags)
  1438.     (This)->lpVtbl -> SelectItem(This,pvfi,dwFlags)
  1439. #define IShellFolderViewDual_PopupItemMenu(This,pfi,vx,vy,pbs)
  1440.     (This)->lpVtbl -> PopupItemMenu(This,pfi,vx,vy,pbs)
  1441. #define IShellFolderViewDual_get_Script(This,ppDisp)
  1442.     (This)->lpVtbl -> get_Script(This,ppDisp)
  1443. #define IShellFolderViewDual_get_ViewOptions(This,plViewOptions)
  1444.     (This)->lpVtbl -> get_ViewOptions(This,plViewOptions)
  1445. #endif /* COBJMACROS */
  1446. #endif  /* C style interface */
  1447. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Application_Proxy( 
  1448.     IShellFolderViewDual * This,
  1449.     /* [retval][out] */ IDispatch **ppid);
  1450. void __RPC_STUB IShellFolderViewDual_get_Application_Stub(
  1451.     IRpcStubBuffer *This,
  1452.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1453.     PRPC_MESSAGE _pRpcMessage,
  1454.     DWORD *_pdwStubPhase);
  1455. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Parent_Proxy( 
  1456.     IShellFolderViewDual * This,
  1457.     /* [retval][out] */ IDispatch **ppid);
  1458. void __RPC_STUB IShellFolderViewDual_get_Parent_Stub(
  1459.     IRpcStubBuffer *This,
  1460.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1461.     PRPC_MESSAGE _pRpcMessage,
  1462.     DWORD *_pdwStubPhase);
  1463. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Folder_Proxy( 
  1464.     IShellFolderViewDual * This,
  1465.     /* [retval][out] */ Folder **ppid);
  1466. void __RPC_STUB IShellFolderViewDual_get_Folder_Stub(
  1467.     IRpcStubBuffer *This,
  1468.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1469.     PRPC_MESSAGE _pRpcMessage,
  1470.     DWORD *_pdwStubPhase);
  1471. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellFolderViewDual_SelectedItems_Proxy( 
  1472.     IShellFolderViewDual * This,
  1473.     /* [retval][out] */ FolderItems **ppid);
  1474. void __RPC_STUB IShellFolderViewDual_SelectedItems_Stub(
  1475.     IRpcStubBuffer *This,
  1476.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1477.     PRPC_MESSAGE _pRpcMessage,
  1478.     DWORD *_pdwStubPhase);
  1479. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_FocusedItem_Proxy( 
  1480.     IShellFolderViewDual * This,
  1481.     /* [retval][out] */ FolderItem **ppid);
  1482. void __RPC_STUB IShellFolderViewDual_get_FocusedItem_Stub(
  1483.     IRpcStubBuffer *This,
  1484.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1485.     PRPC_MESSAGE _pRpcMessage,
  1486.     DWORD *_pdwStubPhase);
  1487. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellFolderViewDual_SelectItem_Proxy( 
  1488.     IShellFolderViewDual * This,
  1489.     /* [in] */ VARIANT *pvfi,
  1490.     /* [in] */ int dwFlags);
  1491. void __RPC_STUB IShellFolderViewDual_SelectItem_Stub(
  1492.     IRpcStubBuffer *This,
  1493.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1494.     PRPC_MESSAGE _pRpcMessage,
  1495.     DWORD *_pdwStubPhase);
  1496. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellFolderViewDual_PopupItemMenu_Proxy( 
  1497.     IShellFolderViewDual * This,
  1498.     /* [in] */ FolderItem *pfi,
  1499.     /* [optional][in] */ VARIANT vx,
  1500.     /* [optional][in] */ VARIANT vy,
  1501.     /* [retval][out] */ BSTR *pbs);
  1502. void __RPC_STUB IShellFolderViewDual_PopupItemMenu_Stub(
  1503.     IRpcStubBuffer *This,
  1504.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1505.     PRPC_MESSAGE _pRpcMessage,
  1506.     DWORD *_pdwStubPhase);
  1507. /* [helpcontext][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_Script_Proxy( 
  1508.     IShellFolderViewDual * This,
  1509.     /* [retval][out] */ IDispatch **ppDisp);
  1510. void __RPC_STUB IShellFolderViewDual_get_Script_Stub(
  1511.     IRpcStubBuffer *This,
  1512.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1513.     PRPC_MESSAGE _pRpcMessage,
  1514.     DWORD *_pdwStubPhase);
  1515. /* [helpcontext][helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellFolderViewDual_get_ViewOptions_Proxy( 
  1516.     IShellFolderViewDual * This,
  1517.     /* [retval][out] */ long *plViewOptions);
  1518. void __RPC_STUB IShellFolderViewDual_get_ViewOptions_Stub(
  1519.     IRpcStubBuffer *This,
  1520.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1521.     PRPC_MESSAGE _pRpcMessage,
  1522.     DWORD *_pdwStubPhase);
  1523. #endif  /* __IShellFolderViewDual_INTERFACE_DEFINED__ */
  1524. #ifndef __IShellFolderViewDual2_INTERFACE_DEFINED__
  1525. #define __IShellFolderViewDual2_INTERFACE_DEFINED__
  1526. /* interface IShellFolderViewDual2 */
  1527. /* [object][dual][hidden][oleautomation][helpstring][uuid] */ 
  1528. EXTERN_C const IID IID_IShellFolderViewDual2;
  1529. #if defined(__cplusplus) && !defined(CINTERFACE)
  1530.     
  1531.     MIDL_INTERFACE("31C147b6-0ADE-4A3C-B514-DDF932EF6D17")
  1532.     IShellFolderViewDual2 : public IShellFolderViewDual
  1533.     {
  1534.     public:
  1535.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentViewMode( 
  1536.             /* [retval][out] */ UINT *pViewMode) = 0;
  1537.         
  1538.         virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_CurrentViewMode( 
  1539.             /* [in] */ UINT ViewMode) = 0;
  1540.         
  1541.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SelectItemRelative( 
  1542.             /* [in] */ int iRelative) = 0;
  1543.         
  1544.     };
  1545.     
  1546. #else  /* C style interface */
  1547.     typedef struct IShellFolderViewDual2Vtbl
  1548.     {
  1549.         BEGIN_INTERFACE
  1550.         
  1551.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1552.             IShellFolderViewDual2 * This,
  1553.             /* [in] */ REFIID riid,
  1554.             /* [iid_is][out] */ void **ppvObject);
  1555.         
  1556.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1557.             IShellFolderViewDual2 * This);
  1558.         
  1559.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1560.             IShellFolderViewDual2 * This);
  1561.         
  1562.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  1563.             IShellFolderViewDual2 * This,
  1564.             /* [out] */ UINT *pctinfo);
  1565.         
  1566.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  1567.             IShellFolderViewDual2 * This,
  1568.             /* [in] */ UINT iTInfo,
  1569.             /* [in] */ LCID lcid,
  1570.             /* [out] */ ITypeInfo **ppTInfo);
  1571.         
  1572.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  1573.             IShellFolderViewDual2 * This,
  1574.             /* [in] */ REFIID riid,
  1575.             /* [size_is][in] */ LPOLESTR *rgszNames,
  1576.             /* [in] */ UINT cNames,
  1577.             /* [in] */ LCID lcid,
  1578.             /* [size_is][out] */ DISPID *rgDispId);
  1579.         
  1580.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  1581.             IShellFolderViewDual2 * This,
  1582.             /* [in] */ DISPID dispIdMember,
  1583.             /* [in] */ REFIID riid,
  1584.             /* [in] */ LCID lcid,
  1585.             /* [in] */ WORD wFlags,
  1586.             /* [out][in] */ DISPPARAMS *pDispParams,
  1587.             /* [out] */ VARIANT *pVarResult,
  1588.             /* [out] */ EXCEPINFO *pExcepInfo,
  1589.             /* [out] */ UINT *puArgErr);
  1590.         
  1591.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
  1592.             IShellFolderViewDual2 * This,
  1593.             /* [retval][out] */ IDispatch **ppid);
  1594.         
  1595.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
  1596.             IShellFolderViewDual2 * This,
  1597.             /* [retval][out] */ IDispatch **ppid);
  1598.         
  1599.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Folder )( 
  1600.             IShellFolderViewDual2 * This,
  1601.             /* [retval][out] */ Folder **ppid);
  1602.         
  1603.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SelectedItems )( 
  1604.             IShellFolderViewDual2 * This,
  1605.             /* [retval][out] */ FolderItems **ppid);
  1606.         
  1607.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FocusedItem )( 
  1608.             IShellFolderViewDual2 * This,
  1609.             /* [retval][out] */ FolderItem **ppid);
  1610.         
  1611.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SelectItem )( 
  1612.             IShellFolderViewDual2 * This,
  1613.             /* [in] */ VARIANT *pvfi,
  1614.             /* [in] */ int dwFlags);
  1615.         
  1616.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *PopupItemMenu )( 
  1617.             IShellFolderViewDual2 * This,
  1618.             /* [in] */ FolderItem *pfi,
  1619.             /* [optional][in] */ VARIANT vx,
  1620.             /* [optional][in] */ VARIANT vy,
  1621.             /* [retval][out] */ BSTR *pbs);
  1622.         
  1623.         /* [helpcontext][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Script )( 
  1624.             IShellFolderViewDual2 * This,
  1625.             /* [retval][out] */ IDispatch **ppDisp);
  1626.         
  1627.         /* [helpcontext][helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ViewOptions )( 
  1628.             IShellFolderViewDual2 * This,
  1629.             /* [retval][out] */ long *plViewOptions);
  1630.         
  1631.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentViewMode )( 
  1632.             IShellFolderViewDual2 * This,
  1633.             /* [retval][out] */ UINT *pViewMode);
  1634.         
  1635.         /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CurrentViewMode )( 
  1636.             IShellFolderViewDual2 * This,
  1637.             /* [in] */ UINT ViewMode);
  1638.         
  1639.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SelectItemRelative )( 
  1640.             IShellFolderViewDual2 * This,
  1641.             /* [in] */ int iRelative);
  1642.         
  1643.         END_INTERFACE
  1644.     } IShellFolderViewDual2Vtbl;
  1645.     interface IShellFolderViewDual2
  1646.     {
  1647.         CONST_VTBL struct IShellFolderViewDual2Vtbl *lpVtbl;
  1648.     };
  1649.     
  1650. #ifdef COBJMACROS
  1651. #define IShellFolderViewDual2_QueryInterface(This,riid,ppvObject)
  1652.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1653. #define IShellFolderViewDual2_AddRef(This)
  1654.     (This)->lpVtbl -> AddRef(This)
  1655. #define IShellFolderViewDual2_Release(This)
  1656.     (This)->lpVtbl -> Release(This)
  1657. #define IShellFolderViewDual2_GetTypeInfoCount(This,pctinfo)
  1658.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  1659. #define IShellFolderViewDual2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1660.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1661. #define IShellFolderViewDual2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1662.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1663. #define IShellFolderViewDual2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1664.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1665. #define IShellFolderViewDual2_get_Application(This,ppid)
  1666.     (This)->lpVtbl -> get_Application(This,ppid)
  1667. #define IShellFolderViewDual2_get_Parent(This,ppid)
  1668.     (This)->lpVtbl -> get_Parent(This,ppid)
  1669. #define IShellFolderViewDual2_get_Folder(This,ppid)
  1670.     (This)->lpVtbl -> get_Folder(This,ppid)
  1671. #define IShellFolderViewDual2_SelectedItems(This,ppid)
  1672.     (This)->lpVtbl -> SelectedItems(This,ppid)
  1673. #define IShellFolderViewDual2_get_FocusedItem(This,ppid)
  1674.     (This)->lpVtbl -> get_FocusedItem(This,ppid)
  1675. #define IShellFolderViewDual2_SelectItem(This,pvfi,dwFlags)
  1676.     (This)->lpVtbl -> SelectItem(This,pvfi,dwFlags)
  1677. #define IShellFolderViewDual2_PopupItemMenu(This,pfi,vx,vy,pbs)
  1678.     (This)->lpVtbl -> PopupItemMenu(This,pfi,vx,vy,pbs)
  1679. #define IShellFolderViewDual2_get_Script(This,ppDisp)
  1680.     (This)->lpVtbl -> get_Script(This,ppDisp)
  1681. #define IShellFolderViewDual2_get_ViewOptions(This,plViewOptions)
  1682.     (This)->lpVtbl -> get_ViewOptions(This,plViewOptions)
  1683. #define IShellFolderViewDual2_get_CurrentViewMode(This,pViewMode)
  1684.     (This)->lpVtbl -> get_CurrentViewMode(This,pViewMode)
  1685. #define IShellFolderViewDual2_put_CurrentViewMode(This,ViewMode)
  1686.     (This)->lpVtbl -> put_CurrentViewMode(This,ViewMode)
  1687. #define IShellFolderViewDual2_SelectItemRelative(This,iRelative)
  1688.     (This)->lpVtbl -> SelectItemRelative(This,iRelative)
  1689. #endif /* COBJMACROS */
  1690. #endif  /* C style interface */
  1691. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellFolderViewDual2_get_CurrentViewMode_Proxy( 
  1692.     IShellFolderViewDual2 * This,
  1693.     /* [retval][out] */ UINT *pViewMode);
  1694. void __RPC_STUB IShellFolderViewDual2_get_CurrentViewMode_Stub(
  1695.     IRpcStubBuffer *This,
  1696.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1697.     PRPC_MESSAGE _pRpcMessage,
  1698.     DWORD *_pdwStubPhase);
  1699. /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IShellFolderViewDual2_put_CurrentViewMode_Proxy( 
  1700.     IShellFolderViewDual2 * This,
  1701.     /* [in] */ UINT ViewMode);
  1702. void __RPC_STUB IShellFolderViewDual2_put_CurrentViewMode_Stub(
  1703.     IRpcStubBuffer *This,
  1704.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1705.     PRPC_MESSAGE _pRpcMessage,
  1706.     DWORD *_pdwStubPhase);
  1707. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellFolderViewDual2_SelectItemRelative_Proxy( 
  1708.     IShellFolderViewDual2 * This,
  1709.     /* [in] */ int iRelative);
  1710. void __RPC_STUB IShellFolderViewDual2_SelectItemRelative_Stub(
  1711.     IRpcStubBuffer *This,
  1712.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1713.     PRPC_MESSAGE _pRpcMessage,
  1714.     DWORD *_pdwStubPhase);
  1715. #endif  /* __IShellFolderViewDual2_INTERFACE_DEFINED__ */
  1716. EXTERN_C const CLSID CLSID_ShellFolderView;
  1717. #ifdef __cplusplus
  1718. class DECLSPEC_UUID("62112AA1-EBE4-11cf-A5FB-0020AFE7292D")
  1719. ShellFolderView;
  1720. #endif
  1721. #ifndef __IMigrationWizardAuto_INTERFACE_DEFINED__
  1722. #define __IMigrationWizardAuto_INTERFACE_DEFINED__
  1723. /* interface IMigrationWizardAuto */
  1724. /* [object][dual][hidden][oleautomation][helpstring][uuid] */ 
  1725. EXTERN_C const IID IID_IMigrationWizardAuto;
  1726. #if defined(__cplusplus) && !defined(CINTERFACE)
  1727.     
  1728.     MIDL_INTERFACE("CE20DAB9-B353-469b-8B4D-6DBB3A7BA016")
  1729.     IMigrationWizardAuto : public IDispatch
  1730.     {
  1731.     public:
  1732.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateToolDisk( 
  1733.             /* [in] */ BSTR pszDrivePath,
  1734.             /* [in] */ BSTR pszFilesPath,
  1735.             /* [in] */ BSTR pszManifestPath) = 0;
  1736.         
  1737.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ApplySettings( 
  1738.             /* [in] */ BSTR pszStore) = 0;
  1739.         
  1740.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Cancel( void) = 0;
  1741.         
  1742.     };
  1743.     
  1744. #else  /* C style interface */
  1745.     typedef struct IMigrationWizardAutoVtbl
  1746.     {
  1747.         BEGIN_INTERFACE
  1748.         
  1749.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1750.             IMigrationWizardAuto * This,
  1751.             /* [in] */ REFIID riid,
  1752.             /* [iid_is][out] */ void **ppvObject);
  1753.         
  1754.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1755.             IMigrationWizardAuto * This);
  1756.         
  1757.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1758.             IMigrationWizardAuto * This);
  1759.         
  1760.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  1761.             IMigrationWizardAuto * This,
  1762.             /* [out] */ UINT *pctinfo);
  1763.         
  1764.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  1765.             IMigrationWizardAuto * This,
  1766.             /* [in] */ UINT iTInfo,
  1767.             /* [in] */ LCID lcid,
  1768.             /* [out] */ ITypeInfo **ppTInfo);
  1769.         
  1770.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  1771.             IMigrationWizardAuto * This,
  1772.             /* [in] */ REFIID riid,
  1773.             /* [size_is][in] */ LPOLESTR *rgszNames,
  1774.             /* [in] */ UINT cNames,
  1775.             /* [in] */ LCID lcid,
  1776.             /* [size_is][out] */ DISPID *rgDispId);
  1777.         
  1778.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  1779.             IMigrationWizardAuto * This,
  1780.             /* [in] */ DISPID dispIdMember,
  1781.             /* [in] */ REFIID riid,
  1782.             /* [in] */ LCID lcid,
  1783.             /* [in] */ WORD wFlags,
  1784.             /* [out][in] */ DISPPARAMS *pDispParams,
  1785.             /* [out] */ VARIANT *pVarResult,
  1786.             /* [out] */ EXCEPINFO *pExcepInfo,
  1787.             /* [out] */ UINT *puArgErr);
  1788.         
  1789.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateToolDisk )( 
  1790.             IMigrationWizardAuto * This,
  1791.             /* [in] */ BSTR pszDrivePath,
  1792.             /* [in] */ BSTR pszFilesPath,
  1793.             /* [in] */ BSTR pszManifestPath);
  1794.         
  1795.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ApplySettings )( 
  1796.             IMigrationWizardAuto * This,
  1797.             /* [in] */ BSTR pszStore);
  1798.         
  1799.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Cancel )( 
  1800.             IMigrationWizardAuto * This);
  1801.         
  1802.         END_INTERFACE
  1803.     } IMigrationWizardAutoVtbl;
  1804.     interface IMigrationWizardAuto
  1805.     {
  1806.         CONST_VTBL struct IMigrationWizardAutoVtbl *lpVtbl;
  1807.     };
  1808.     
  1809. #ifdef COBJMACROS
  1810. #define IMigrationWizardAuto_QueryInterface(This,riid,ppvObject)
  1811.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1812. #define IMigrationWizardAuto_AddRef(This)
  1813.     (This)->lpVtbl -> AddRef(This)
  1814. #define IMigrationWizardAuto_Release(This)
  1815.     (This)->lpVtbl -> Release(This)
  1816. #define IMigrationWizardAuto_GetTypeInfoCount(This,pctinfo)
  1817.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  1818. #define IMigrationWizardAuto_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1819.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1820. #define IMigrationWizardAuto_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1821.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1822. #define IMigrationWizardAuto_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1823.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1824. #define IMigrationWizardAuto_CreateToolDisk(This,pszDrivePath,pszFilesPath,pszManifestPath)
  1825.     (This)->lpVtbl -> CreateToolDisk(This,pszDrivePath,pszFilesPath,pszManifestPath)
  1826. #define IMigrationWizardAuto_ApplySettings(This,pszStore)
  1827.     (This)->lpVtbl -> ApplySettings(This,pszStore)
  1828. #define IMigrationWizardAuto_Cancel(This)
  1829.     (This)->lpVtbl -> Cancel(This)
  1830. #endif /* COBJMACROS */
  1831. #endif  /* C style interface */
  1832. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IMigrationWizardAuto_CreateToolDisk_Proxy( 
  1833.     IMigrationWizardAuto * This,
  1834.     /* [in] */ BSTR pszDrivePath,
  1835.     /* [in] */ BSTR pszFilesPath,
  1836.     /* [in] */ BSTR pszManifestPath);
  1837. void __RPC_STUB IMigrationWizardAuto_CreateToolDisk_Stub(
  1838.     IRpcStubBuffer *This,
  1839.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1840.     PRPC_MESSAGE _pRpcMessage,
  1841.     DWORD *_pdwStubPhase);
  1842. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IMigrationWizardAuto_ApplySettings_Proxy( 
  1843.     IMigrationWizardAuto * This,
  1844.     /* [in] */ BSTR pszStore);
  1845. void __RPC_STUB IMigrationWizardAuto_ApplySettings_Stub(
  1846.     IRpcStubBuffer *This,
  1847.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1848.     PRPC_MESSAGE _pRpcMessage,
  1849.     DWORD *_pdwStubPhase);
  1850. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IMigrationWizardAuto_Cancel_Proxy( 
  1851.     IMigrationWizardAuto * This);
  1852. void __RPC_STUB IMigrationWizardAuto_Cancel_Stub(
  1853.     IRpcStubBuffer *This,
  1854.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1855.     PRPC_MESSAGE _pRpcMessage,
  1856.     DWORD *_pdwStubPhase);
  1857. #endif  /* __IMigrationWizardAuto_INTERFACE_DEFINED__ */
  1858. #ifndef __DMigrationWizardAutoEvents_DISPINTERFACE_DEFINED__
  1859. #define __DMigrationWizardAutoEvents_DISPINTERFACE_DEFINED__
  1860. /* dispinterface DMigrationWizardAutoEvents */
  1861. /* [helpstring][uuid] */ 
  1862. EXTERN_C const IID DIID_DMigrationWizardAutoEvents;
  1863. #if defined(__cplusplus) && !defined(CINTERFACE)
  1864.     MIDL_INTERFACE("D2AC137D-A6D8-43b6-9879-EA34B67E1880")
  1865.     DMigrationWizardAutoEvents : public IDispatch
  1866.     {
  1867.     };
  1868.     
  1869. #else  /* C style interface */
  1870.     typedef struct DMigrationWizardAutoEventsVtbl
  1871.     {
  1872.         BEGIN_INTERFACE
  1873.         
  1874.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1875.             DMigrationWizardAutoEvents * This,
  1876.             /* [in] */ REFIID riid,
  1877.             /* [iid_is][out] */ void **ppvObject);
  1878.         
  1879.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1880.             DMigrationWizardAutoEvents * This);
  1881.         
  1882.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1883.             DMigrationWizardAutoEvents * This);
  1884.         
  1885.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  1886.             DMigrationWizardAutoEvents * This,
  1887.             /* [out] */ UINT *pctinfo);
  1888.         
  1889.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  1890.             DMigrationWizardAutoEvents * This,
  1891.             /* [in] */ UINT iTInfo,
  1892.             /* [in] */ LCID lcid,
  1893.             /* [out] */ ITypeInfo **ppTInfo);
  1894.         
  1895.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  1896.             DMigrationWizardAutoEvents * This,
  1897.             /* [in] */ REFIID riid,
  1898.             /* [size_is][in] */ LPOLESTR *rgszNames,
  1899.             /* [in] */ UINT cNames,
  1900.             /* [in] */ LCID lcid,
  1901.             /* [size_is][out] */ DISPID *rgDispId);
  1902.         
  1903.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  1904.             DMigrationWizardAutoEvents * This,
  1905.             /* [in] */ DISPID dispIdMember,
  1906.             /* [in] */ REFIID riid,
  1907.             /* [in] */ LCID lcid,
  1908.             /* [in] */ WORD wFlags,
  1909.             /* [out][in] */ DISPPARAMS *pDispParams,
  1910.             /* [out] */ VARIANT *pVarResult,
  1911.             /* [out] */ EXCEPINFO *pExcepInfo,
  1912.             /* [out] */ UINT *puArgErr);
  1913.         
  1914.         END_INTERFACE
  1915.     } DMigrationWizardAutoEventsVtbl;
  1916.     interface DMigrationWizardAutoEvents
  1917.     {
  1918.         CONST_VTBL struct DMigrationWizardAutoEventsVtbl *lpVtbl;
  1919.     };
  1920.     
  1921. #ifdef COBJMACROS
  1922. #define DMigrationWizardAutoEvents_QueryInterface(This,riid,ppvObject)
  1923.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1924. #define DMigrationWizardAutoEvents_AddRef(This)
  1925.     (This)->lpVtbl -> AddRef(This)
  1926. #define DMigrationWizardAutoEvents_Release(This)
  1927.     (This)->lpVtbl -> Release(This)
  1928. #define DMigrationWizardAutoEvents_GetTypeInfoCount(This,pctinfo)
  1929.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  1930. #define DMigrationWizardAutoEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1931.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  1932. #define DMigrationWizardAutoEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1933.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  1934. #define DMigrationWizardAutoEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1935.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  1936. #endif /* COBJMACROS */
  1937. #endif  /* C style interface */
  1938. #endif  /* __DMigrationWizardAutoEvents_DISPINTERFACE_DEFINED__ */
  1939. EXTERN_C const CLSID CLSID_MigrationWizardAuto;
  1940. #ifdef __cplusplus
  1941. class DECLSPEC_UUID("67331D85-BE17-42f6-8D3F-47B8E8B26637")
  1942. MigrationWizardAuto;
  1943. #endif
  1944. #ifndef __IShellDispatch_INTERFACE_DEFINED__
  1945. #define __IShellDispatch_INTERFACE_DEFINED__
  1946. /* interface IShellDispatch */
  1947. /* [object][dual][hidden][oleautomation][helpstring][uuid] */ 
  1948. EXTERN_C const IID IID_IShellDispatch;
  1949. #if defined(__cplusplus) && !defined(CINTERFACE)
  1950.     
  1951.     MIDL_INTERFACE("D8F015C0-C278-11CE-A49E-444553540000")
  1952.     IShellDispatch : public IDispatch
  1953.     {
  1954.     public:
  1955.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Application( 
  1956.             /* [retval][out] */ IDispatch **ppid) = 0;
  1957.         
  1958.         virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_Parent( 
  1959.             /* [retval][out] */ IDispatch **ppid) = 0;
  1960.         
  1961.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE NameSpace( 
  1962.             /* [in] */ VARIANT vDir,
  1963.             /* [retval][out] */ Folder **ppsdf) = 0;
  1964.         
  1965.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE BrowseForFolder( 
  1966.             /* [in] */ long Hwnd,
  1967.             /* [in] */ BSTR Title,
  1968.             /* [in] */ long Options,
  1969.             /* [optional][in] */ VARIANT RootFolder,
  1970.             /* [retval][out] */ Folder **ppsdf) = 0;
  1971.         
  1972.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Windows( 
  1973.             /* [retval][out] */ IDispatch **ppid) = 0;
  1974.         
  1975.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Open( 
  1976.             /* [in] */ VARIANT vDir) = 0;
  1977.         
  1978.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Explore( 
  1979.             /* [in] */ VARIANT vDir) = 0;
  1980.         
  1981.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MinimizeAll( void) = 0;
  1982.         
  1983.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UndoMinimizeALL( void) = 0;
  1984.         
  1985.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FileRun( void) = 0;
  1986.         
  1987.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CascadeWindows( void) = 0;
  1988.         
  1989.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE TileVertically( void) = 0;
  1990.         
  1991.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE TileHorizontally( void) = 0;
  1992.         
  1993.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ShutdownWindows( void) = 0;
  1994.         
  1995.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Suspend( void) = 0;
  1996.         
  1997.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EjectPC( void) = 0;
  1998.         
  1999.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTime( void) = 0;
  2000.         
  2001.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE TrayProperties( void) = 0;
  2002.         
  2003.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Help( void) = 0;
  2004.         
  2005.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindFiles( void) = 0;
  2006.         
  2007.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindComputer( void) = 0;
  2008.         
  2009.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RefreshMenu( void) = 0;
  2010.         
  2011.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ControlPanelItem( 
  2012.             /* [in] */ BSTR szDir) = 0;
  2013.         
  2014.     };
  2015.     
  2016. #else  /* C style interface */
  2017.     typedef struct IShellDispatchVtbl
  2018.     {
  2019.         BEGIN_INTERFACE
  2020.         
  2021.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2022.             IShellDispatch * This,
  2023.             /* [in] */ REFIID riid,
  2024.             /* [iid_is][out] */ void **ppvObject);
  2025.         
  2026.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2027.             IShellDispatch * This);
  2028.         
  2029.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2030.             IShellDispatch * This);
  2031.         
  2032.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
  2033.             IShellDispatch * This,
  2034.             /* [out] */ UINT *pctinfo);
  2035.         
  2036.         HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
  2037.             IShellDispatch * This,
  2038.             /* [in] */ UINT iTInfo,
  2039.             /* [in] */ LCID lcid,
  2040.             /* [out] */ ITypeInfo **ppTInfo);
  2041.         
  2042.         HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
  2043.             IShellDispatch * This,
  2044.             /* [in] */ REFIID riid,
  2045.             /* [size_is][in] */ LPOLESTR *rgszNames,
  2046.             /* [in] */ UINT cNames,
  2047.             /* [in] */ LCID lcid,
  2048.             /* [size_is][out] */ DISPID *rgDispId);
  2049.         
  2050.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
  2051.             IShellDispatch * This,
  2052.             /* [in] */ DISPID dispIdMember,
  2053.             /* [in] */ REFIID riid,
  2054.             /* [in] */ LCID lcid,
  2055.             /* [in] */ WORD wFlags,
  2056.             /* [out][in] */ DISPPARAMS *pDispParams,
  2057.             /* [out] */ VARIANT *pVarResult,
  2058.             /* [out] */ EXCEPINFO *pExcepInfo,
  2059.             /* [out] */ UINT *puArgErr);
  2060.         
  2061.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Application )( 
  2062.             IShellDispatch * This,
  2063.             /* [retval][out] */ IDispatch **ppid);
  2064.         
  2065.         /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Parent )( 
  2066.             IShellDispatch * This,
  2067.             /* [retval][out] */ IDispatch **ppid);
  2068.         
  2069.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *NameSpace )( 
  2070.             IShellDispatch * This,
  2071.             /* [in] */ VARIANT vDir,
  2072.             /* [retval][out] */ Folder **ppsdf);
  2073.         
  2074.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *BrowseForFolder )( 
  2075.             IShellDispatch * This,
  2076.             /* [in] */ long Hwnd,
  2077.             /* [in] */ BSTR Title,
  2078.             /* [in] */ long Options,
  2079.             /* [optional][in] */ VARIANT RootFolder,
  2080.             /* [retval][out] */ Folder **ppsdf);
  2081.         
  2082.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Windows )( 
  2083.             IShellDispatch * This,
  2084.             /* [retval][out] */ IDispatch **ppid);
  2085.         
  2086.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Open )( 
  2087.             IShellDispatch * This,
  2088.             /* [in] */ VARIANT vDir);
  2089.         
  2090.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Explore )( 
  2091.             IShellDispatch * This,
  2092.             /* [in] */ VARIANT vDir);
  2093.         
  2094.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MinimizeAll )( 
  2095.             IShellDispatch * This);
  2096.         
  2097.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UndoMinimizeALL )( 
  2098.             IShellDispatch * This);
  2099.         
  2100.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FileRun )( 
  2101.             IShellDispatch * This);
  2102.         
  2103.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CascadeWindows )( 
  2104.             IShellDispatch * This);
  2105.         
  2106.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TileVertically )( 
  2107.             IShellDispatch * This);
  2108.         
  2109.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TileHorizontally )( 
  2110.             IShellDispatch * This);
  2111.         
  2112.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ShutdownWindows )( 
  2113.             IShellDispatch * This);
  2114.         
  2115.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Suspend )( 
  2116.             IShellDispatch * This);
  2117.         
  2118.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EjectPC )( 
  2119.             IShellDispatch * This);
  2120.         
  2121.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTime )( 
  2122.             IShellDispatch * This);
  2123.         
  2124.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TrayProperties )( 
  2125.             IShellDispatch * This);
  2126.         
  2127.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Help )( 
  2128.             IShellDispatch * This);
  2129.         
  2130.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindFiles )( 
  2131.             IShellDispatch * This);
  2132.         
  2133.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindComputer )( 
  2134.             IShellDispatch * This);
  2135.         
  2136.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RefreshMenu )( 
  2137.             IShellDispatch * This);
  2138.         
  2139.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ControlPanelItem )( 
  2140.             IShellDispatch * This,
  2141.             /* [in] */ BSTR szDir);
  2142.         
  2143.         END_INTERFACE
  2144.     } IShellDispatchVtbl;
  2145.     interface IShellDispatch
  2146.     {
  2147.         CONST_VTBL struct IShellDispatchVtbl *lpVtbl;
  2148.     };
  2149.     
  2150. #ifdef COBJMACROS
  2151. #define IShellDispatch_QueryInterface(This,riid,ppvObject)
  2152.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2153. #define IShellDispatch_AddRef(This)
  2154.     (This)->lpVtbl -> AddRef(This)
  2155. #define IShellDispatch_Release(This)
  2156.     (This)->lpVtbl -> Release(This)
  2157. #define IShellDispatch_GetTypeInfoCount(This,pctinfo)
  2158.     (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
  2159. #define IShellDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  2160.     (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
  2161. #define IShellDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  2162.     (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
  2163. #define IShellDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2164.     (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
  2165. #define IShellDispatch_get_Application(This,ppid)
  2166.     (This)->lpVtbl -> get_Application(This,ppid)
  2167. #define IShellDispatch_get_Parent(This,ppid)
  2168.     (This)->lpVtbl -> get_Parent(This,ppid)
  2169. #define IShellDispatch_NameSpace(This,vDir,ppsdf)
  2170.     (This)->lpVtbl -> NameSpace(This,vDir,ppsdf)
  2171. #define IShellDispatch_BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf)
  2172.     (This)->lpVtbl -> BrowseForFolder(This,Hwnd,Title,Options,RootFolder,ppsdf)
  2173. #define IShellDispatch_Windows(This,ppid)
  2174.     (This)->lpVtbl -> Windows(This,ppid)
  2175. #define IShellDispatch_Open(This,vDir)
  2176.     (This)->lpVtbl -> Open(This,vDir)
  2177. #define IShellDispatch_Explore(This,vDir)
  2178.     (This)->lpVtbl -> Explore(This,vDir)
  2179. #define IShellDispatch_MinimizeAll(This)
  2180.     (This)->lpVtbl -> MinimizeAll(This)
  2181. #define IShellDispatch_UndoMinimizeALL(This)
  2182.     (This)->lpVtbl -> UndoMinimizeALL(This)
  2183. #define IShellDispatch_FileRun(This)
  2184.     (This)->lpVtbl -> FileRun(This)
  2185. #define IShellDispatch_CascadeWindows(This)
  2186.     (This)->lpVtbl -> CascadeWindows(This)
  2187. #define IShellDispatch_TileVertically(This)
  2188.     (This)->lpVtbl -> TileVertically(This)
  2189. #define IShellDispatch_TileHorizontally(This)
  2190.     (This)->lpVtbl -> TileHorizontally(This)
  2191. #define IShellDispatch_ShutdownWindows(This)
  2192.     (This)->lpVtbl -> ShutdownWindows(This)
  2193. #define IShellDispatch_Suspend(This)
  2194.     (This)->lpVtbl -> Suspend(This)
  2195. #define IShellDispatch_EjectPC(This)
  2196.     (This)->lpVtbl -> EjectPC(This)
  2197. #define IShellDispatch_SetTime(This)
  2198.     (This)->lpVtbl -> SetTime(This)
  2199. #define IShellDispatch_TrayProperties(This)
  2200.     (This)->lpVtbl -> TrayProperties(This)
  2201. #define IShellDispatch_Help(This)
  2202.     (This)->lpVtbl -> Help(This)
  2203. #define IShellDispatch_FindFiles(This)
  2204.     (This)->lpVtbl -> FindFiles(This)
  2205. #define IShellDispatch_FindComputer(This)
  2206.     (This)->lpVtbl -> FindComputer(This)
  2207. #define IShellDispatch_RefreshMenu(This)
  2208.     (This)->lpVtbl -> RefreshMenu(This)
  2209. #define IShellDispatch_ControlPanelItem(This,szDir)
  2210.     (This)->lpVtbl -> ControlPanelItem(This,szDir)
  2211. #endif /* COBJMACROS */
  2212. #endif  /* C style interface */
  2213. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellDispatch_get_Application_Proxy( 
  2214.     IShellDispatch * This,
  2215.     /* [retval][out] */ IDispatch **ppid);
  2216. void __RPC_STUB IShellDispatch_get_Application_Stub(
  2217.     IRpcStubBuffer *This,
  2218.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2219.     PRPC_MESSAGE _pRpcMessage,
  2220.     DWORD *_pdwStubPhase);
  2221. /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IShellDispatch_get_Parent_Proxy( 
  2222.     IShellDispatch * This,
  2223.     /* [retval][out] */ IDispatch **ppid);
  2224. void __RPC_STUB IShellDispatch_get_Parent_Stub(
  2225.     IRpcStubBuffer *This,
  2226.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2227.     PRPC_MESSAGE _pRpcMessage,
  2228.     DWORD *_pdwStubPhase);
  2229. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_NameSpace_Proxy( 
  2230.     IShellDispatch * This,
  2231.     /* [in] */ VARIANT vDir,
  2232.     /* [retval][out] */ Folder **ppsdf);
  2233. void __RPC_STUB IShellDispatch_NameSpace_Stub(
  2234.     IRpcStubBuffer *This,
  2235.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2236.     PRPC_MESSAGE _pRpcMessage,
  2237.     DWORD *_pdwStubPhase);
  2238. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_BrowseForFolder_Proxy( 
  2239.     IShellDispatch * This,
  2240.     /* [in] */ long Hwnd,
  2241.     /* [in] */ BSTR Title,
  2242.     /* [in] */ long Options,
  2243.     /* [optional][in] */ VARIANT RootFolder,
  2244.     /* [retval][out] */ Folder **ppsdf);
  2245. void __RPC_STUB IShellDispatch_BrowseForFolder_Stub(
  2246.     IRpcStubBuffer *This,
  2247.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2248.     PRPC_MESSAGE _pRpcMessage,
  2249.     DWORD *_pdwStubPhase);
  2250. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_Windows_Proxy( 
  2251.     IShellDispatch * This,
  2252.     /* [retval][out] */ IDispatch **ppid);
  2253. void __RPC_STUB IShellDispatch_Windows_Stub(
  2254.     IRpcStubBuffer *This,
  2255.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2256.     PRPC_MESSAGE _pRpcMessage,
  2257.     DWORD *_pdwStubPhase);
  2258. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_Open_Proxy( 
  2259.     IShellDispatch * This,
  2260.     /* [in] */ VARIANT vDir);
  2261. void __RPC_STUB IShellDispatch_Open_Stub(
  2262.     IRpcStubBuffer *This,
  2263.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2264.     PRPC_MESSAGE _pRpcMessage,
  2265.     DWORD *_pdwStubPhase);
  2266. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_Explore_Proxy( 
  2267.     IShellDispatch * This,
  2268.     /* [in] */ VARIANT vDir);
  2269. void __RPC_STUB IShellDispatch_Explore_Stub(
  2270.     IRpcStubBuffer *This,
  2271.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2272.     PRPC_MESSAGE _pRpcMessage,
  2273.     DWORD *_pdwStubPhase);
  2274. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_MinimizeAll_Proxy( 
  2275.     IShellDispatch * This);
  2276. void __RPC_STUB IShellDispatch_MinimizeAll_Stub(
  2277.     IRpcStubBuffer *This,
  2278.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2279.     PRPC_MESSAGE _pRpcMessage,
  2280.     DWORD *_pdwStubPhase);
  2281. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_UndoMinimizeALL_Proxy( 
  2282.     IShellDispatch * This);
  2283. void __RPC_STUB IShellDispatch_UndoMinimizeALL_Stub(
  2284.     IRpcStubBuffer *This,
  2285.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2286.     PRPC_MESSAGE _pRpcMessage,
  2287.     DWORD *_pdwStubPhase);
  2288. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_FileRun_Proxy( 
  2289.     IShellDispatch * This);
  2290. void __RPC_STUB IShellDispatch_FileRun_Stub(
  2291.     IRpcStubBuffer *This,
  2292.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2293.     PRPC_MESSAGE _pRpcMessage,
  2294.     DWORD *_pdwStubPhase);
  2295. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_CascadeWindows_Proxy( 
  2296.     IShellDispatch * This);
  2297. void __RPC_STUB IShellDispatch_CascadeWindows_Stub(
  2298.     IRpcStubBuffer *This,
  2299.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2300.     PRPC_MESSAGE _pRpcMessage,
  2301.     DWORD *_pdwStubPhase);
  2302. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_TileVertically_Proxy( 
  2303.     IShellDispatch * This);
  2304. void __RPC_STUB IShellDispatch_TileVertically_Stub(
  2305.     IRpcStubBuffer *This,
  2306.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2307.     PRPC_MESSAGE _pRpcMessage,
  2308.     DWORD *_pdwStubPhase);
  2309. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_TileHorizontally_Proxy( 
  2310.     IShellDispatch * This);
  2311. void __RPC_STUB IShellDispatch_TileHorizontally_Stub(
  2312.     IRpcStubBuffer *This,
  2313.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2314.     PRPC_MESSAGE _pRpcMessage,
  2315.     DWORD *_pdwStubPhase);
  2316. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_ShutdownWindows_Proxy( 
  2317.     IShellDispatch * This);
  2318. void __RPC_STUB IShellDispatch_ShutdownWindows_Stub(
  2319.     IRpcStubBuffer *This,
  2320.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2321.     PRPC_MESSAGE _pRpcMessage,
  2322.     DWORD *_pdwStubPhase);
  2323. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_Suspend_Proxy( 
  2324.     IShellDispatch * This);
  2325. void __RPC_STUB IShellDispatch_Suspend_Stub(
  2326.     IRpcStubBuffer *This,
  2327.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2328.     PRPC_MESSAGE _pRpcMessage,
  2329.     DWORD *_pdwStubPhase);
  2330. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_EjectPC_Proxy( 
  2331.     IShellDispatch * This);
  2332. void __RPC_STUB IShellDispatch_EjectPC_Stub(
  2333.     IRpcStubBuffer *This,
  2334.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2335.     PRPC_MESSAGE _pRpcMessage,
  2336.     DWORD *_pdwStubPhase);
  2337. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_SetTime_Proxy( 
  2338.     IShellDispatch * This);
  2339. void __RPC_STUB IShellDispatch_SetTime_Stub(
  2340.     IRpcStubBuffer *This,
  2341.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2342.     PRPC_MESSAGE _pRpcMessage,
  2343.     DWORD *_pdwStubPhase);
  2344. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_TrayProperties_Proxy( 
  2345.     IShellDispatch * This);
  2346. void __RPC_STUB IShellDispatch_TrayProperties_Stub(
  2347.     IRpcStubBuffer *This,
  2348.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2349.     PRPC_MESSAGE _pRpcMessage,
  2350.     DWORD *_pdwStubPhase);
  2351. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_Help_Proxy( 
  2352.     IShellDispatch * This);
  2353. void __RPC_STUB IShellDispatch_Help_Stub(
  2354.     IRpcStubBuffer *This,
  2355.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2356.     PRPC_MESSAGE _pRpcMessage,
  2357.     DWORD *_pdwStubPhase);
  2358. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_FindFiles_Proxy( 
  2359.     IShellDispatch * This);
  2360. void __RPC_STUB IShellDispatch_FindFiles_Stub(
  2361.     IRpcStubBuffer *This,
  2362.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2363.     PRPC_MESSAGE _pRpcMessage,
  2364.     DWORD *_pdwStubPhase);
  2365. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_FindComputer_Proxy( 
  2366.     IShellDispatch * This);
  2367. void __RPC_STUB IShellDispatch_FindComputer_Stub(
  2368.     IRpcStubBuffer *This,
  2369.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2370.     PRPC_MESSAGE _pRpcMessage,
  2371.     DWORD *_pdwStubPhase);
  2372. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_RefreshMenu_Proxy( 
  2373.     IShellDispatch * This);
  2374. void __RPC_STUB IShellDispatch_RefreshMenu_Stub(
  2375.     IRpcStubBuffer *This,
  2376.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2377.     PRPC_MESSAGE _pRpcMessage,
  2378.     DWORD *_pdwStubPhase);
  2379. /* [helpstring] */ HRESULT STDMETHODCALLTYPE IShellDispatch_ControlPanelItem_Proxy( 
  2380.     IShellDispatch * This,
  2381.     /* [in] */ BSTR szDir);
  2382. void __RPC_STUB IShellDispatch_ControlPanelItem_Stub(
  2383.     IRpcStubBuffer *This,
  2384.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2385.     PRPC_MESSAGE _pRpcMessage,
  2386.     DWORD *_pdwStubPhase);
  2387. #endif  /* __IShellDispatch_INTERFACE_DEFINED__ */
  2388. #ifndef __IShellDispatch2_INTERFACE_DEFINED__
  2389. #define __IShellDispatch2_INTERFACE_DEFINED__
  2390. /* interface IShellDispatch2 */
  2391. /* [object][dual][hidden][oleautomation][helpstring][uuid] */ 
  2392. EXTERN_C const IID IID_IShellDispatch2;
  2393. #if defined(__cplusplus) && !defined(CINTERFACE)
  2394.