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

模拟服务器

开发平台:

C/C++

  1. #define IFolderFilterSite_QueryInterface(This,riid,ppvObject)
  2.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  3. #define IFolderFilterSite_AddRef(This)
  4.     (This)->lpVtbl -> AddRef(This)
  5. #define IFolderFilterSite_Release(This)
  6.     (This)->lpVtbl -> Release(This)
  7. #define IFolderFilterSite_SetFilter(This,punk)
  8.     (This)->lpVtbl -> SetFilter(This,punk)
  9. #endif /* COBJMACROS */
  10. #endif  /* C style interface */
  11. HRESULT STDMETHODCALLTYPE IFolderFilterSite_SetFilter_Proxy( 
  12.     IFolderFilterSite * This,
  13.     /* [in] */ IUnknown *punk);
  14. void __RPC_STUB IFolderFilterSite_SetFilter_Stub(
  15.     IRpcStubBuffer *This,
  16.     IRpcChannelBuffer *_pRpcChannelBuffer,
  17.     PRPC_MESSAGE _pRpcMessage,
  18.     DWORD *_pdwStubPhase);
  19. #endif  /* __IFolderFilterSite_INTERFACE_DEFINED__ */
  20. #ifndef __IFolderFilter_INTERFACE_DEFINED__
  21. #define __IFolderFilter_INTERFACE_DEFINED__
  22. /* interface IFolderFilter */
  23. /* [unique][object][uuid][helpstring] */ 
  24. EXTERN_C const IID IID_IFolderFilter;
  25. #if defined(__cplusplus) && !defined(CINTERFACE)
  26.     
  27.     MIDL_INTERFACE("9CC22886-DC8E-11d2-B1D0-00C04F8EEB3E")
  28.     IFolderFilter : public IUnknown
  29.     {
  30.     public:
  31.         virtual HRESULT STDMETHODCALLTYPE ShouldShow( 
  32.             /* [in] */ IShellFolder *psf,
  33.             /* [in] */ LPCITEMIDLIST pidlFolder,
  34.             /* [in] */ LPCITEMIDLIST pidlItem) = 0;
  35.         
  36.         virtual HRESULT STDMETHODCALLTYPE GetEnumFlags( 
  37.             /* [in] */ IShellFolder *psf,
  38.             /* [in] */ LPCITEMIDLIST pidlFolder,
  39.             /* [in] */ HWND *phwnd,
  40.             /* [out] */ DWORD *pgrfFlags) = 0;
  41.         
  42.     };
  43.     
  44. #else  /* C style interface */
  45.     typedef struct IFolderFilterVtbl
  46.     {
  47.         BEGIN_INTERFACE
  48.         
  49.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  50.             IFolderFilter * This,
  51.             /* [in] */ REFIID riid,
  52.             /* [iid_is][out] */ void **ppvObject);
  53.         
  54.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  55.             IFolderFilter * This);
  56.         
  57.         ULONG ( STDMETHODCALLTYPE *Release )( 
  58.             IFolderFilter * This);
  59.         
  60.         HRESULT ( STDMETHODCALLTYPE *ShouldShow )( 
  61.             IFolderFilter * This,
  62.             /* [in] */ IShellFolder *psf,
  63.             /* [in] */ LPCITEMIDLIST pidlFolder,
  64.             /* [in] */ LPCITEMIDLIST pidlItem);
  65.         
  66.         HRESULT ( STDMETHODCALLTYPE *GetEnumFlags )( 
  67.             IFolderFilter * This,
  68.             /* [in] */ IShellFolder *psf,
  69.             /* [in] */ LPCITEMIDLIST pidlFolder,
  70.             /* [in] */ HWND *phwnd,
  71.             /* [out] */ DWORD *pgrfFlags);
  72.         
  73.         END_INTERFACE
  74.     } IFolderFilterVtbl;
  75.     interface IFolderFilter
  76.     {
  77.         CONST_VTBL struct IFolderFilterVtbl *lpVtbl;
  78.     };
  79.     
  80. #ifdef COBJMACROS
  81. #define IFolderFilter_QueryInterface(This,riid,ppvObject)
  82.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  83. #define IFolderFilter_AddRef(This)
  84.     (This)->lpVtbl -> AddRef(This)
  85. #define IFolderFilter_Release(This)
  86.     (This)->lpVtbl -> Release(This)
  87. #define IFolderFilter_ShouldShow(This,psf,pidlFolder,pidlItem)
  88.     (This)->lpVtbl -> ShouldShow(This,psf,pidlFolder,pidlItem)
  89. #define IFolderFilter_GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags)
  90.     (This)->lpVtbl -> GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags)
  91. #endif /* COBJMACROS */
  92. #endif  /* C style interface */
  93. HRESULT STDMETHODCALLTYPE IFolderFilter_ShouldShow_Proxy( 
  94.     IFolderFilter * This,
  95.     /* [in] */ IShellFolder *psf,
  96.     /* [in] */ LPCITEMIDLIST pidlFolder,
  97.     /* [in] */ LPCITEMIDLIST pidlItem);
  98. void __RPC_STUB IFolderFilter_ShouldShow_Stub(
  99.     IRpcStubBuffer *This,
  100.     IRpcChannelBuffer *_pRpcChannelBuffer,
  101.     PRPC_MESSAGE _pRpcMessage,
  102.     DWORD *_pdwStubPhase);
  103. HRESULT STDMETHODCALLTYPE IFolderFilter_GetEnumFlags_Proxy( 
  104.     IFolderFilter * This,
  105.     /* [in] */ IShellFolder *psf,
  106.     /* [in] */ LPCITEMIDLIST pidlFolder,
  107.     /* [in] */ HWND *phwnd,
  108.     /* [out] */ DWORD *pgrfFlags);
  109. void __RPC_STUB IFolderFilter_GetEnumFlags_Stub(
  110.     IRpcStubBuffer *This,
  111.     IRpcChannelBuffer *_pRpcChannelBuffer,
  112.     PRPC_MESSAGE _pRpcMessage,
  113.     DWORD *_pdwStubPhase);
  114. #endif  /* __IFolderFilter_INTERFACE_DEFINED__ */
  115. /* interface __MIDL_itf_shobjidl_0202 */
  116. /* [local] */ 
  117. #define SBSP_DEFBROWSER         0x0000
  118. #define SBSP_SAMEBROWSER        0x0001
  119. #define SBSP_NEWBROWSER         0x0002
  120. #define SBSP_DEFMODE            0x0000
  121. #define SBSP_OPENMODE           0x0010
  122. #define SBSP_EXPLOREMODE        0x0020
  123. #define SBSP_HELPMODE           0x0040 // IEUNIX : Help window uses this.
  124. #define SBSP_NOTRANSFERHIST     0x0080
  125. #define SBSP_ABSOLUTE           0x0000
  126. #define SBSP_RELATIVE           0x1000
  127. #define SBSP_PARENT             0x2000
  128. #define SBSP_NAVIGATEBACK       0x4000
  129. #define SBSP_NAVIGATEFORWARD    0x8000
  130. #define SBSP_ALLOW_AUTONAVIGATE 0x10000
  131. #define SBSP_NOAUTOSELECT       0x04000000
  132. #define SBSP_WRITENOHISTORY     0x08000000
  133. #define SBSP_REDIRECT                     0x40000000
  134. #define SBSP_INITIATEDBYHLINKFRAME        0x80000000
  135. #define FCW_STATUS      0x0001
  136. #define FCW_TOOLBAR     0x0002
  137. #define FCW_TREE        0x0003
  138. #define FCW_INTERNETBAR 0x0006
  139. #define FCW_PROGRESS    0x0008
  140. #define FCT_MERGE       0x0001
  141. #define FCT_CONFIGABLE  0x0002
  142. #define FCT_ADDTOEND    0x0004
  143. #ifdef _NEVER_
  144. typedef LPARAM LPTBBUTTONSB;
  145. #else //!_NEVER_
  146. #include <commctrl.h>
  147. typedef LPTBBUTTON LPTBBUTTONSB;
  148. #endif //_NEVER_
  149. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0202_v0_0_c_ifspec;
  150. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0202_v0_0_s_ifspec;
  151. #ifndef __IShellBrowser_INTERFACE_DEFINED__
  152. #define __IShellBrowser_INTERFACE_DEFINED__
  153. /* interface IShellBrowser */
  154. /* [unique][object][uuid][helpstring] */ 
  155. EXTERN_C const IID IID_IShellBrowser;
  156. #if defined(__cplusplus) && !defined(CINTERFACE)
  157.     
  158.     MIDL_INTERFACE("000214E2-0000-0000-C000-000000000046")
  159.     IShellBrowser : public IOleWindow
  160.     {
  161.     public:
  162.         virtual HRESULT STDMETHODCALLTYPE InsertMenusSB( 
  163.             /* [in] */ HMENU hmenuShared,
  164.             /* [out][in] */ LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
  165.         
  166.         virtual HRESULT STDMETHODCALLTYPE SetMenuSB( 
  167.             /* [in] */ HMENU hmenuShared,
  168.             /* [in] */ HOLEMENU holemenuRes,
  169.             /* [in] */ HWND hwndActiveObject) = 0;
  170.         
  171.         virtual HRESULT STDMETHODCALLTYPE RemoveMenusSB( 
  172.             /* [in] */ HMENU hmenuShared) = 0;
  173.         
  174.         virtual HRESULT STDMETHODCALLTYPE SetStatusTextSB( 
  175.             /* [unique][in] */ LPCOLESTR pszStatusText) = 0;
  176.         
  177.         virtual HRESULT STDMETHODCALLTYPE EnableModelessSB( 
  178.             /* [in] */ BOOL fEnable) = 0;
  179.         
  180.         virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorSB( 
  181.             /* [in] */ MSG *pmsg,
  182.             /* [in] */ WORD wID) = 0;
  183.         
  184.         virtual HRESULT STDMETHODCALLTYPE BrowseObject( 
  185.             /* [in] */ LPCITEMIDLIST pidl,
  186.             /* [in] */ UINT wFlags) = 0;
  187.         
  188.         virtual HRESULT STDMETHODCALLTYPE GetViewStateStream( 
  189.             /* [in] */ DWORD grfMode,
  190.             /* [out] */ IStream **ppStrm) = 0;
  191.         
  192.         virtual HRESULT STDMETHODCALLTYPE GetControlWindow( 
  193.             /* [in] */ UINT id,
  194.             /* [out] */ HWND *phwnd) = 0;
  195.         
  196.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SendControlMsg( 
  197.             /* [in] */ UINT id,
  198.             /* [in] */ UINT uMsg,
  199.             /* [in] */ WPARAM wParam,
  200.             /* [in] */ LPARAM lParam,
  201.             /* [in] */ LRESULT *pret) = 0;
  202.         
  203.         virtual HRESULT STDMETHODCALLTYPE QueryActiveShellView( 
  204.             /* [out] */ IShellView **ppshv) = 0;
  205.         
  206.         virtual HRESULT STDMETHODCALLTYPE OnViewWindowActive( 
  207.             /* [in] */ IShellView *pshv) = 0;
  208.         
  209.         virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetToolbarItems( 
  210.             /* [in] */ LPTBBUTTONSB lpButtons,
  211.             /* [in] */ UINT nButtons,
  212.             /* [in] */ UINT uFlags) = 0;
  213.         
  214.     };
  215.     
  216. #else  /* C style interface */
  217.     typedef struct IShellBrowserVtbl
  218.     {
  219.         BEGIN_INTERFACE
  220.         
  221.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  222.             IShellBrowser * This,
  223.             /* [in] */ REFIID riid,
  224.             /* [iid_is][out] */ void **ppvObject);
  225.         
  226.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  227.             IShellBrowser * This);
  228.         
  229.         ULONG ( STDMETHODCALLTYPE *Release )( 
  230.             IShellBrowser * This);
  231.         
  232.         /* [input_sync] */ HRESULT ( STDMETHODCALLTYPE *GetWindow )( 
  233.             IShellBrowser * This,
  234.             /* [out] */ HWND *phwnd);
  235.         
  236.         HRESULT ( STDMETHODCALLTYPE *ContextSensitiveHelp )( 
  237.             IShellBrowser * This,
  238.             /* [in] */ BOOL fEnterMode);
  239.         
  240.         HRESULT ( STDMETHODCALLTYPE *InsertMenusSB )( 
  241.             IShellBrowser * This,
  242.             /* [in] */ HMENU hmenuShared,
  243.             /* [out][in] */ LPOLEMENUGROUPWIDTHS lpMenuWidths);
  244.         
  245.         HRESULT ( STDMETHODCALLTYPE *SetMenuSB )( 
  246.             IShellBrowser * This,
  247.             /* [in] */ HMENU hmenuShared,
  248.             /* [in] */ HOLEMENU holemenuRes,
  249.             /* [in] */ HWND hwndActiveObject);
  250.         
  251.         HRESULT ( STDMETHODCALLTYPE *RemoveMenusSB )( 
  252.             IShellBrowser * This,
  253.             /* [in] */ HMENU hmenuShared);
  254.         
  255.         HRESULT ( STDMETHODCALLTYPE *SetStatusTextSB )( 
  256.             IShellBrowser * This,
  257.             /* [unique][in] */ LPCOLESTR pszStatusText);
  258.         
  259.         HRESULT ( STDMETHODCALLTYPE *EnableModelessSB )( 
  260.             IShellBrowser * This,
  261.             /* [in] */ BOOL fEnable);
  262.         
  263.         HRESULT ( STDMETHODCALLTYPE *TranslateAcceleratorSB )( 
  264.             IShellBrowser * This,
  265.             /* [in] */ MSG *pmsg,
  266.             /* [in] */ WORD wID);
  267.         
  268.         HRESULT ( STDMETHODCALLTYPE *BrowseObject )( 
  269.             IShellBrowser * This,
  270.             /* [in] */ LPCITEMIDLIST pidl,
  271.             /* [in] */ UINT wFlags);
  272.         
  273.         HRESULT ( STDMETHODCALLTYPE *GetViewStateStream )( 
  274.             IShellBrowser * This,
  275.             /* [in] */ DWORD grfMode,
  276.             /* [out] */ IStream **ppStrm);
  277.         
  278.         HRESULT ( STDMETHODCALLTYPE *GetControlWindow )( 
  279.             IShellBrowser * This,
  280.             /* [in] */ UINT id,
  281.             /* [out] */ HWND *phwnd);
  282.         
  283.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SendControlMsg )( 
  284.             IShellBrowser * This,
  285.             /* [in] */ UINT id,
  286.             /* [in] */ UINT uMsg,
  287.             /* [in] */ WPARAM wParam,
  288.             /* [in] */ LPARAM lParam,
  289.             /* [in] */ LRESULT *pret);
  290.         
  291.         HRESULT ( STDMETHODCALLTYPE *QueryActiveShellView )( 
  292.             IShellBrowser * This,
  293.             /* [out] */ IShellView **ppshv);
  294.         
  295.         HRESULT ( STDMETHODCALLTYPE *OnViewWindowActive )( 
  296.             IShellBrowser * This,
  297.             /* [in] */ IShellView *pshv);
  298.         
  299.         /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetToolbarItems )( 
  300.             IShellBrowser * This,
  301.             /* [in] */ LPTBBUTTONSB lpButtons,
  302.             /* [in] */ UINT nButtons,
  303.             /* [in] */ UINT uFlags);
  304.         
  305.         END_INTERFACE
  306.     } IShellBrowserVtbl;
  307.     interface IShellBrowser
  308.     {
  309.         CONST_VTBL struct IShellBrowserVtbl *lpVtbl;
  310.     };
  311.     
  312. #ifdef COBJMACROS
  313. #define IShellBrowser_QueryInterface(This,riid,ppvObject)
  314.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  315. #define IShellBrowser_AddRef(This)
  316.     (This)->lpVtbl -> AddRef(This)
  317. #define IShellBrowser_Release(This)
  318.     (This)->lpVtbl -> Release(This)
  319. #define IShellBrowser_GetWindow(This,phwnd)
  320.     (This)->lpVtbl -> GetWindow(This,phwnd)
  321. #define IShellBrowser_ContextSensitiveHelp(This,fEnterMode)
  322.     (This)->lpVtbl -> ContextSensitiveHelp(This,fEnterMode)
  323. #define IShellBrowser_InsertMenusSB(This,hmenuShared,lpMenuWidths)
  324.     (This)->lpVtbl -> InsertMenusSB(This,hmenuShared,lpMenuWidths)
  325. #define IShellBrowser_SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject)
  326.     (This)->lpVtbl -> SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject)
  327. #define IShellBrowser_RemoveMenusSB(This,hmenuShared)
  328.     (This)->lpVtbl -> RemoveMenusSB(This,hmenuShared)
  329. #define IShellBrowser_SetStatusTextSB(This,pszStatusText)
  330.     (This)->lpVtbl -> SetStatusTextSB(This,pszStatusText)
  331. #define IShellBrowser_EnableModelessSB(This,fEnable)
  332.     (This)->lpVtbl -> EnableModelessSB(This,fEnable)
  333. #define IShellBrowser_TranslateAcceleratorSB(This,pmsg,wID)
  334.     (This)->lpVtbl -> TranslateAcceleratorSB(This,pmsg,wID)
  335. #define IShellBrowser_BrowseObject(This,pidl,wFlags)
  336.     (This)->lpVtbl -> BrowseObject(This,pidl,wFlags)
  337. #define IShellBrowser_GetViewStateStream(This,grfMode,ppStrm)
  338.     (This)->lpVtbl -> GetViewStateStream(This,grfMode,ppStrm)
  339. #define IShellBrowser_GetControlWindow(This,id,phwnd)
  340.     (This)->lpVtbl -> GetControlWindow(This,id,phwnd)
  341. #define IShellBrowser_SendControlMsg(This,id,uMsg,wParam,lParam,pret)
  342.     (This)->lpVtbl -> SendControlMsg(This,id,uMsg,wParam,lParam,pret)
  343. #define IShellBrowser_QueryActiveShellView(This,ppshv)
  344.     (This)->lpVtbl -> QueryActiveShellView(This,ppshv)
  345. #define IShellBrowser_OnViewWindowActive(This,pshv)
  346.     (This)->lpVtbl -> OnViewWindowActive(This,pshv)
  347. #define IShellBrowser_SetToolbarItems(This,lpButtons,nButtons,uFlags)
  348.     (This)->lpVtbl -> SetToolbarItems(This,lpButtons,nButtons,uFlags)
  349. #endif /* COBJMACROS */
  350. #endif  /* C style interface */
  351. HRESULT STDMETHODCALLTYPE IShellBrowser_InsertMenusSB_Proxy( 
  352.     IShellBrowser * This,
  353.     /* [in] */ HMENU hmenuShared,
  354.     /* [out][in] */ LPOLEMENUGROUPWIDTHS lpMenuWidths);
  355. void __RPC_STUB IShellBrowser_InsertMenusSB_Stub(
  356.     IRpcStubBuffer *This,
  357.     IRpcChannelBuffer *_pRpcChannelBuffer,
  358.     PRPC_MESSAGE _pRpcMessage,
  359.     DWORD *_pdwStubPhase);
  360. HRESULT STDMETHODCALLTYPE IShellBrowser_SetMenuSB_Proxy( 
  361.     IShellBrowser * This,
  362.     /* [in] */ HMENU hmenuShared,
  363.     /* [in] */ HOLEMENU holemenuRes,
  364.     /* [in] */ HWND hwndActiveObject);
  365. void __RPC_STUB IShellBrowser_SetMenuSB_Stub(
  366.     IRpcStubBuffer *This,
  367.     IRpcChannelBuffer *_pRpcChannelBuffer,
  368.     PRPC_MESSAGE _pRpcMessage,
  369.     DWORD *_pdwStubPhase);
  370. HRESULT STDMETHODCALLTYPE IShellBrowser_RemoveMenusSB_Proxy( 
  371.     IShellBrowser * This,
  372.     /* [in] */ HMENU hmenuShared);
  373. void __RPC_STUB IShellBrowser_RemoveMenusSB_Stub(
  374.     IRpcStubBuffer *This,
  375.     IRpcChannelBuffer *_pRpcChannelBuffer,
  376.     PRPC_MESSAGE _pRpcMessage,
  377.     DWORD *_pdwStubPhase);
  378. HRESULT STDMETHODCALLTYPE IShellBrowser_SetStatusTextSB_Proxy( 
  379.     IShellBrowser * This,
  380.     /* [unique][in] */ LPCOLESTR pszStatusText);
  381. void __RPC_STUB IShellBrowser_SetStatusTextSB_Stub(
  382.     IRpcStubBuffer *This,
  383.     IRpcChannelBuffer *_pRpcChannelBuffer,
  384.     PRPC_MESSAGE _pRpcMessage,
  385.     DWORD *_pdwStubPhase);
  386. HRESULT STDMETHODCALLTYPE IShellBrowser_EnableModelessSB_Proxy( 
  387.     IShellBrowser * This,
  388.     /* [in] */ BOOL fEnable);
  389. void __RPC_STUB IShellBrowser_EnableModelessSB_Stub(
  390.     IRpcStubBuffer *This,
  391.     IRpcChannelBuffer *_pRpcChannelBuffer,
  392.     PRPC_MESSAGE _pRpcMessage,
  393.     DWORD *_pdwStubPhase);
  394. HRESULT STDMETHODCALLTYPE IShellBrowser_TranslateAcceleratorSB_Proxy( 
  395.     IShellBrowser * This,
  396.     /* [in] */ MSG *pmsg,
  397.     /* [in] */ WORD wID);
  398. void __RPC_STUB IShellBrowser_TranslateAcceleratorSB_Stub(
  399.     IRpcStubBuffer *This,
  400.     IRpcChannelBuffer *_pRpcChannelBuffer,
  401.     PRPC_MESSAGE _pRpcMessage,
  402.     DWORD *_pdwStubPhase);
  403. HRESULT STDMETHODCALLTYPE IShellBrowser_BrowseObject_Proxy( 
  404.     IShellBrowser * This,
  405.     /* [in] */ LPCITEMIDLIST pidl,
  406.     /* [in] */ UINT wFlags);
  407. void __RPC_STUB IShellBrowser_BrowseObject_Stub(
  408.     IRpcStubBuffer *This,
  409.     IRpcChannelBuffer *_pRpcChannelBuffer,
  410.     PRPC_MESSAGE _pRpcMessage,
  411.     DWORD *_pdwStubPhase);
  412. HRESULT STDMETHODCALLTYPE IShellBrowser_GetViewStateStream_Proxy( 
  413.     IShellBrowser * This,
  414.     /* [in] */ DWORD grfMode,
  415.     /* [out] */ IStream **ppStrm);
  416. void __RPC_STUB IShellBrowser_GetViewStateStream_Stub(
  417.     IRpcStubBuffer *This,
  418.     IRpcChannelBuffer *_pRpcChannelBuffer,
  419.     PRPC_MESSAGE _pRpcMessage,
  420.     DWORD *_pdwStubPhase);
  421. HRESULT STDMETHODCALLTYPE IShellBrowser_GetControlWindow_Proxy( 
  422.     IShellBrowser * This,
  423.     /* [in] */ UINT id,
  424.     /* [out] */ HWND *phwnd);
  425. void __RPC_STUB IShellBrowser_GetControlWindow_Stub(
  426.     IRpcStubBuffer *This,
  427.     IRpcChannelBuffer *_pRpcChannelBuffer,
  428.     PRPC_MESSAGE _pRpcMessage,
  429.     DWORD *_pdwStubPhase);
  430. /* [local] */ HRESULT STDMETHODCALLTYPE IShellBrowser_SendControlMsg_Proxy( 
  431.     IShellBrowser * This,
  432.     /* [in] */ UINT id,
  433.     /* [in] */ UINT uMsg,
  434.     /* [in] */ WPARAM wParam,
  435.     /* [in] */ LPARAM lParam,
  436.     /* [in] */ LRESULT *pret);
  437. void __RPC_STUB IShellBrowser_SendControlMsg_Stub(
  438.     IRpcStubBuffer *This,
  439.     IRpcChannelBuffer *_pRpcChannelBuffer,
  440.     PRPC_MESSAGE _pRpcMessage,
  441.     DWORD *_pdwStubPhase);
  442. HRESULT STDMETHODCALLTYPE IShellBrowser_QueryActiveShellView_Proxy( 
  443.     IShellBrowser * This,
  444.     /* [out] */ IShellView **ppshv);
  445. void __RPC_STUB IShellBrowser_QueryActiveShellView_Stub(
  446.     IRpcStubBuffer *This,
  447.     IRpcChannelBuffer *_pRpcChannelBuffer,
  448.     PRPC_MESSAGE _pRpcMessage,
  449.     DWORD *_pdwStubPhase);
  450. HRESULT STDMETHODCALLTYPE IShellBrowser_OnViewWindowActive_Proxy( 
  451.     IShellBrowser * This,
  452.     /* [in] */ IShellView *pshv);
  453. void __RPC_STUB IShellBrowser_OnViewWindowActive_Stub(
  454.     IRpcStubBuffer *This,
  455.     IRpcChannelBuffer *_pRpcChannelBuffer,
  456.     PRPC_MESSAGE _pRpcMessage,
  457.     DWORD *_pdwStubPhase);
  458. /* [local] */ HRESULT STDMETHODCALLTYPE IShellBrowser_SetToolbarItems_Proxy( 
  459.     IShellBrowser * This,
  460.     /* [in] */ LPTBBUTTONSB lpButtons,
  461.     /* [in] */ UINT nButtons,
  462.     /* [in] */ UINT uFlags);
  463. void __RPC_STUB IShellBrowser_SetToolbarItems_Stub(
  464.     IRpcStubBuffer *This,
  465.     IRpcChannelBuffer *_pRpcChannelBuffer,
  466.     PRPC_MESSAGE _pRpcMessage,
  467.     DWORD *_pdwStubPhase);
  468. #endif  /* __IShellBrowser_INTERFACE_DEFINED__ */
  469. /* interface __MIDL_itf_shobjidl_0203 */
  470. /* [local] */ 
  471. typedef IShellBrowser *LPSHELLBROWSER;
  472. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0203_v0_0_c_ifspec;
  473. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0203_v0_0_s_ifspec;
  474. #ifndef __IProfferService_INTERFACE_DEFINED__
  475. #define __IProfferService_INTERFACE_DEFINED__
  476. /* interface IProfferService */
  477. /* [unique][object][uuid][helpstring] */ 
  478. EXTERN_C const IID IID_IProfferService;
  479. #if defined(__cplusplus) && !defined(CINTERFACE)
  480.     
  481.     MIDL_INTERFACE("cb728b20-f786-11ce-92ad-00aa00a74cd0")
  482.     IProfferService : public IUnknown
  483.     {
  484.     public:
  485.         virtual HRESULT STDMETHODCALLTYPE ProfferService( 
  486.             /* [in] */ REFGUID rguidService,
  487.             /* [in] */ IServiceProvider *psp,
  488.             /* [out] */ DWORD *pdwCookie) = 0;
  489.         
  490.         virtual HRESULT STDMETHODCALLTYPE RevokeService( 
  491.             /* [in] */ DWORD dwCookie) = 0;
  492.         
  493.     };
  494.     
  495. #else  /* C style interface */
  496.     typedef struct IProfferServiceVtbl
  497.     {
  498.         BEGIN_INTERFACE
  499.         
  500.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  501.             IProfferService * This,
  502.             /* [in] */ REFIID riid,
  503.             /* [iid_is][out] */ void **ppvObject);
  504.         
  505.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  506.             IProfferService * This);
  507.         
  508.         ULONG ( STDMETHODCALLTYPE *Release )( 
  509.             IProfferService * This);
  510.         
  511.         HRESULT ( STDMETHODCALLTYPE *ProfferService )( 
  512.             IProfferService * This,
  513.             /* [in] */ REFGUID rguidService,
  514.             /* [in] */ IServiceProvider *psp,
  515.             /* [out] */ DWORD *pdwCookie);
  516.         
  517.         HRESULT ( STDMETHODCALLTYPE *RevokeService )( 
  518.             IProfferService * This,
  519.             /* [in] */ DWORD dwCookie);
  520.         
  521.         END_INTERFACE
  522.     } IProfferServiceVtbl;
  523.     interface IProfferService
  524.     {
  525.         CONST_VTBL struct IProfferServiceVtbl *lpVtbl;
  526.     };
  527.     
  528. #ifdef COBJMACROS
  529. #define IProfferService_QueryInterface(This,riid,ppvObject)
  530.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  531. #define IProfferService_AddRef(This)
  532.     (This)->lpVtbl -> AddRef(This)
  533. #define IProfferService_Release(This)
  534.     (This)->lpVtbl -> Release(This)
  535. #define IProfferService_ProfferService(This,rguidService,psp,pdwCookie)
  536.     (This)->lpVtbl -> ProfferService(This,rguidService,psp,pdwCookie)
  537. #define IProfferService_RevokeService(This,dwCookie)
  538.     (This)->lpVtbl -> RevokeService(This,dwCookie)
  539. #endif /* COBJMACROS */
  540. #endif  /* C style interface */
  541. HRESULT STDMETHODCALLTYPE IProfferService_ProfferService_Proxy( 
  542.     IProfferService * This,
  543.     /* [in] */ REFGUID rguidService,
  544.     /* [in] */ IServiceProvider *psp,
  545.     /* [out] */ DWORD *pdwCookie);
  546. void __RPC_STUB IProfferService_ProfferService_Stub(
  547.     IRpcStubBuffer *This,
  548.     IRpcChannelBuffer *_pRpcChannelBuffer,
  549.     PRPC_MESSAGE _pRpcMessage,
  550.     DWORD *_pdwStubPhase);
  551. HRESULT STDMETHODCALLTYPE IProfferService_RevokeService_Proxy( 
  552.     IProfferService * This,
  553.     /* [in] */ DWORD dwCookie);
  554. void __RPC_STUB IProfferService_RevokeService_Stub(
  555.     IRpcStubBuffer *This,
  556.     IRpcChannelBuffer *_pRpcChannelBuffer,
  557.     PRPC_MESSAGE _pRpcMessage,
  558.     DWORD *_pdwStubPhase);
  559. #endif  /* __IProfferService_INTERFACE_DEFINED__ */
  560. /* interface __MIDL_itf_shobjidl_0204 */
  561. /* [local] */ 
  562. #define SID_SProfferService IID_IProfferService    // nearest service that you can proffer to
  563. typedef /* [public][public][v1_enum] */ 
  564. enum __MIDL___MIDL_itf_shobjidl_0204_0001
  565.     { PUIFNF_DEFAULT = 0,
  566. PUIFNF_MNEMONIC = 0x1
  567.     }  PROPERTYUI_NAME_FLAGS;
  568. typedef /* [public][public][v1_enum] */ 
  569. enum __MIDL___MIDL_itf_shobjidl_0204_0002
  570.     { PUIF_DEFAULT = 0,
  571. PUIF_RIGHTALIGN = 0x1,
  572. PUIF_NOLABELININFOTIP = 0x2
  573.     }  PROPERTYUI_FLAGS;
  574. typedef /* [public][public][v1_enum] */ 
  575. enum __MIDL___MIDL_itf_shobjidl_0204_0003
  576.     { PUIFFDF_DEFAULT = 0,
  577. PUIFFDF_RIGHTTOLEFT = 0x1,
  578. PUIFFDF_SHORTFORMAT = 0x2,
  579. PUIFFDF_NOTIME = 0x4,
  580. PUIFFDF_FRIENDLYDATE = 0x8,
  581. PUIFFDF_NOUNITS = 0x10
  582.     }  PROPERTYUI_FORMAT_FLAGS;
  583. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0204_v0_0_c_ifspec;
  584. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0204_v0_0_s_ifspec;
  585. #ifndef __IPropertyUI_INTERFACE_DEFINED__
  586. #define __IPropertyUI_INTERFACE_DEFINED__
  587. /* interface IPropertyUI */
  588. /* [unique][object][uuid][helpstring] */ 
  589. EXTERN_C const IID IID_IPropertyUI;
  590. #if defined(__cplusplus) && !defined(CINTERFACE)
  591.     
  592.     MIDL_INTERFACE("757a7d9f-919a-4118-99d7-dbb208c8cc66")
  593.     IPropertyUI : public IUnknown
  594.     {
  595.     public:
  596.         virtual HRESULT STDMETHODCALLTYPE ParsePropertyName( 
  597.             /* [in] */ LPCWSTR pszName,
  598.             /* [out] */ FMTID *pfmtid,
  599.             /* [out] */ PROPID *ppid,
  600.             /* [out][in] */ ULONG *pchEaten) = 0;
  601.         
  602.         virtual HRESULT STDMETHODCALLTYPE GetCannonicalName( 
  603.             /* [in] */ REFFMTID fmtid,
  604.             /* [in] */ PROPID pid,
  605.             /* [size_is][out] */ LPWSTR pwszText,
  606.             /* [in] */ DWORD cchText) = 0;
  607.         
  608.         virtual HRESULT STDMETHODCALLTYPE GetDisplayName( 
  609.             /* [in] */ REFFMTID fmtid,
  610.             /* [in] */ PROPID pid,
  611.             /* [in] */ PROPERTYUI_NAME_FLAGS flags,
  612.             /* [size_is][out] */ LPWSTR pwszText,
  613.             /* [in] */ DWORD cchText) = 0;
  614.         
  615.         virtual HRESULT STDMETHODCALLTYPE GetPropertyDescription( 
  616.             /* [in] */ REFFMTID fmtid,
  617.             /* [in] */ PROPID pid,
  618.             /* [size_is][out] */ LPWSTR pwszText,
  619.             /* [in] */ DWORD cchText) = 0;
  620.         
  621.         virtual HRESULT STDMETHODCALLTYPE GetDefaultWidth( 
  622.             /* [in] */ REFFMTID fmtid,
  623.             /* [in] */ PROPID pid,
  624.             /* [out] */ ULONG *pcxChars) = 0;
  625.         
  626.         virtual HRESULT STDMETHODCALLTYPE GetFlags( 
  627.             /* [in] */ REFFMTID fmtid,
  628.             /* [in] */ PROPID pid,
  629.             /* [out] */ PROPERTYUI_FLAGS *pFlags) = 0;
  630.         
  631.         virtual HRESULT STDMETHODCALLTYPE FormatForDisplay( 
  632.             /* [in] */ REFFMTID fmtid,
  633.             /* [in] */ PROPID pid,
  634.             /* [in] */ const PROPVARIANT *pvar,
  635.             /* [in] */ PROPERTYUI_FORMAT_FLAGS flags,
  636.             /* [size_is][out] */ LPWSTR pwszText,
  637.             /* [in] */ DWORD cchText) = 0;
  638.         
  639.         virtual HRESULT STDMETHODCALLTYPE GetHelpInfo( 
  640.             /* [in] */ REFFMTID fmtid,
  641.             /* [in] */ PROPID pid,
  642.             /* [size_is][out] */ LPWSTR pwszHelpFile,
  643.             /* [in] */ DWORD cch,
  644.             /* [out] */ UINT *puHelpID) = 0;
  645.         
  646.     };
  647.     
  648. #else  /* C style interface */
  649.     typedef struct IPropertyUIVtbl
  650.     {
  651.         BEGIN_INTERFACE
  652.         
  653.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  654.             IPropertyUI * This,
  655.             /* [in] */ REFIID riid,
  656.             /* [iid_is][out] */ void **ppvObject);
  657.         
  658.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  659.             IPropertyUI * This);
  660.         
  661.         ULONG ( STDMETHODCALLTYPE *Release )( 
  662.             IPropertyUI * This);
  663.         
  664.         HRESULT ( STDMETHODCALLTYPE *ParsePropertyName )( 
  665.             IPropertyUI * This,
  666.             /* [in] */ LPCWSTR pszName,
  667.             /* [out] */ FMTID *pfmtid,
  668.             /* [out] */ PROPID *ppid,
  669.             /* [out][in] */ ULONG *pchEaten);
  670.         
  671.         HRESULT ( STDMETHODCALLTYPE *GetCannonicalName )( 
  672.             IPropertyUI * This,
  673.             /* [in] */ REFFMTID fmtid,
  674.             /* [in] */ PROPID pid,
  675.             /* [size_is][out] */ LPWSTR pwszText,
  676.             /* [in] */ DWORD cchText);
  677.         
  678.         HRESULT ( STDMETHODCALLTYPE *GetDisplayName )( 
  679.             IPropertyUI * This,
  680.             /* [in] */ REFFMTID fmtid,
  681.             /* [in] */ PROPID pid,
  682.             /* [in] */ PROPERTYUI_NAME_FLAGS flags,
  683.             /* [size_is][out] */ LPWSTR pwszText,
  684.             /* [in] */ DWORD cchText);
  685.         
  686.         HRESULT ( STDMETHODCALLTYPE *GetPropertyDescription )( 
  687.             IPropertyUI * This,
  688.             /* [in] */ REFFMTID fmtid,
  689.             /* [in] */ PROPID pid,
  690.             /* [size_is][out] */ LPWSTR pwszText,
  691.             /* [in] */ DWORD cchText);
  692.         
  693.         HRESULT ( STDMETHODCALLTYPE *GetDefaultWidth )( 
  694.             IPropertyUI * This,
  695.             /* [in] */ REFFMTID fmtid,
  696.             /* [in] */ PROPID pid,
  697.             /* [out] */ ULONG *pcxChars);
  698.         
  699.         HRESULT ( STDMETHODCALLTYPE *GetFlags )( 
  700.             IPropertyUI * This,
  701.             /* [in] */ REFFMTID fmtid,
  702.             /* [in] */ PROPID pid,
  703.             /* [out] */ PROPERTYUI_FLAGS *pFlags);
  704.         
  705.         HRESULT ( STDMETHODCALLTYPE *FormatForDisplay )( 
  706.             IPropertyUI * This,
  707.             /* [in] */ REFFMTID fmtid,
  708.             /* [in] */ PROPID pid,
  709.             /* [in] */ const PROPVARIANT *pvar,
  710.             /* [in] */ PROPERTYUI_FORMAT_FLAGS flags,
  711.             /* [size_is][out] */ LPWSTR pwszText,
  712.             /* [in] */ DWORD cchText);
  713.         
  714.         HRESULT ( STDMETHODCALLTYPE *GetHelpInfo )( 
  715.             IPropertyUI * This,
  716.             /* [in] */ REFFMTID fmtid,
  717.             /* [in] */ PROPID pid,
  718.             /* [size_is][out] */ LPWSTR pwszHelpFile,
  719.             /* [in] */ DWORD cch,
  720.             /* [out] */ UINT *puHelpID);
  721.         
  722.         END_INTERFACE
  723.     } IPropertyUIVtbl;
  724.     interface IPropertyUI
  725.     {
  726.         CONST_VTBL struct IPropertyUIVtbl *lpVtbl;
  727.     };
  728.     
  729. #ifdef COBJMACROS
  730. #define IPropertyUI_QueryInterface(This,riid,ppvObject)
  731.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  732. #define IPropertyUI_AddRef(This)
  733.     (This)->lpVtbl -> AddRef(This)
  734. #define IPropertyUI_Release(This)
  735.     (This)->lpVtbl -> Release(This)
  736. #define IPropertyUI_ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten)
  737.     (This)->lpVtbl -> ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten)
  738. #define IPropertyUI_GetCannonicalName(This,fmtid,pid,pwszText,cchText)
  739.     (This)->lpVtbl -> GetCannonicalName(This,fmtid,pid,pwszText,cchText)
  740. #define IPropertyUI_GetDisplayName(This,fmtid,pid,flags,pwszText,cchText)
  741.     (This)->lpVtbl -> GetDisplayName(This,fmtid,pid,flags,pwszText,cchText)
  742. #define IPropertyUI_GetPropertyDescription(This,fmtid,pid,pwszText,cchText)
  743.     (This)->lpVtbl -> GetPropertyDescription(This,fmtid,pid,pwszText,cchText)
  744. #define IPropertyUI_GetDefaultWidth(This,fmtid,pid,pcxChars)
  745.     (This)->lpVtbl -> GetDefaultWidth(This,fmtid,pid,pcxChars)
  746. #define IPropertyUI_GetFlags(This,fmtid,pid,pFlags)
  747.     (This)->lpVtbl -> GetFlags(This,fmtid,pid,pFlags)
  748. #define IPropertyUI_FormatForDisplay(This,fmtid,pid,pvar,flags,pwszText,cchText)
  749.     (This)->lpVtbl -> FormatForDisplay(This,fmtid,pid,pvar,flags,pwszText,cchText)
  750. #define IPropertyUI_GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID)
  751.     (This)->lpVtbl -> GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID)
  752. #endif /* COBJMACROS */
  753. #endif  /* C style interface */
  754. HRESULT STDMETHODCALLTYPE IPropertyUI_ParsePropertyName_Proxy( 
  755.     IPropertyUI * This,
  756.     /* [in] */ LPCWSTR pszName,
  757.     /* [out] */ FMTID *pfmtid,
  758.     /* [out] */ PROPID *ppid,
  759.     /* [out][in] */ ULONG *pchEaten);
  760. void __RPC_STUB IPropertyUI_ParsePropertyName_Stub(
  761.     IRpcStubBuffer *This,
  762.     IRpcChannelBuffer *_pRpcChannelBuffer,
  763.     PRPC_MESSAGE _pRpcMessage,
  764.     DWORD *_pdwStubPhase);
  765. HRESULT STDMETHODCALLTYPE IPropertyUI_GetCannonicalName_Proxy( 
  766.     IPropertyUI * This,
  767.     /* [in] */ REFFMTID fmtid,
  768.     /* [in] */ PROPID pid,
  769.     /* [size_is][out] */ LPWSTR pwszText,
  770.     /* [in] */ DWORD cchText);
  771. void __RPC_STUB IPropertyUI_GetCannonicalName_Stub(
  772.     IRpcStubBuffer *This,
  773.     IRpcChannelBuffer *_pRpcChannelBuffer,
  774.     PRPC_MESSAGE _pRpcMessage,
  775.     DWORD *_pdwStubPhase);
  776. HRESULT STDMETHODCALLTYPE IPropertyUI_GetDisplayName_Proxy( 
  777.     IPropertyUI * This,
  778.     /* [in] */ REFFMTID fmtid,
  779.     /* [in] */ PROPID pid,
  780.     /* [in] */ PROPERTYUI_NAME_FLAGS flags,
  781.     /* [size_is][out] */ LPWSTR pwszText,
  782.     /* [in] */ DWORD cchText);
  783. void __RPC_STUB IPropertyUI_GetDisplayName_Stub(
  784.     IRpcStubBuffer *This,
  785.     IRpcChannelBuffer *_pRpcChannelBuffer,
  786.     PRPC_MESSAGE _pRpcMessage,
  787.     DWORD *_pdwStubPhase);
  788. HRESULT STDMETHODCALLTYPE IPropertyUI_GetPropertyDescription_Proxy( 
  789.     IPropertyUI * This,
  790.     /* [in] */ REFFMTID fmtid,
  791.     /* [in] */ PROPID pid,
  792.     /* [size_is][out] */ LPWSTR pwszText,
  793.     /* [in] */ DWORD cchText);
  794. void __RPC_STUB IPropertyUI_GetPropertyDescription_Stub(
  795.     IRpcStubBuffer *This,
  796.     IRpcChannelBuffer *_pRpcChannelBuffer,
  797.     PRPC_MESSAGE _pRpcMessage,
  798.     DWORD *_pdwStubPhase);
  799. HRESULT STDMETHODCALLTYPE IPropertyUI_GetDefaultWidth_Proxy( 
  800.     IPropertyUI * This,
  801.     /* [in] */ REFFMTID fmtid,
  802.     /* [in] */ PROPID pid,
  803.     /* [out] */ ULONG *pcxChars);
  804. void __RPC_STUB IPropertyUI_GetDefaultWidth_Stub(
  805.     IRpcStubBuffer *This,
  806.     IRpcChannelBuffer *_pRpcChannelBuffer,
  807.     PRPC_MESSAGE _pRpcMessage,
  808.     DWORD *_pdwStubPhase);
  809. HRESULT STDMETHODCALLTYPE IPropertyUI_GetFlags_Proxy( 
  810.     IPropertyUI * This,
  811.     /* [in] */ REFFMTID fmtid,
  812.     /* [in] */ PROPID pid,
  813.     /* [out] */ PROPERTYUI_FLAGS *pFlags);
  814. void __RPC_STUB IPropertyUI_GetFlags_Stub(
  815.     IRpcStubBuffer *This,
  816.     IRpcChannelBuffer *_pRpcChannelBuffer,
  817.     PRPC_MESSAGE _pRpcMessage,
  818.     DWORD *_pdwStubPhase);
  819. HRESULT STDMETHODCALLTYPE IPropertyUI_FormatForDisplay_Proxy( 
  820.     IPropertyUI * This,
  821.     /* [in] */ REFFMTID fmtid,
  822.     /* [in] */ PROPID pid,
  823.     /* [in] */ const PROPVARIANT *pvar,
  824.     /* [in] */ PROPERTYUI_FORMAT_FLAGS flags,
  825.     /* [size_is][out] */ LPWSTR pwszText,
  826.     /* [in] */ DWORD cchText);
  827. void __RPC_STUB IPropertyUI_FormatForDisplay_Stub(
  828.     IRpcStubBuffer *This,
  829.     IRpcChannelBuffer *_pRpcChannelBuffer,
  830.     PRPC_MESSAGE _pRpcMessage,
  831.     DWORD *_pdwStubPhase);
  832. HRESULT STDMETHODCALLTYPE IPropertyUI_GetHelpInfo_Proxy( 
  833.     IPropertyUI * This,
  834.     /* [in] */ REFFMTID fmtid,
  835.     /* [in] */ PROPID pid,
  836.     /* [size_is][out] */ LPWSTR pwszHelpFile,
  837.     /* [in] */ DWORD cch,
  838.     /* [out] */ UINT *puHelpID);
  839. void __RPC_STUB IPropertyUI_GetHelpInfo_Stub(
  840.     IRpcStubBuffer *This,
  841.     IRpcChannelBuffer *_pRpcChannelBuffer,
  842.     PRPC_MESSAGE _pRpcMessage,
  843.     DWORD *_pdwStubPhase);
  844. #endif  /* __IPropertyUI_INTERFACE_DEFINED__ */
  845. /* interface __MIDL_itf_shobjidl_0205 */
  846. /* [local] */ 
  847. #if (_WIN32_IE >= 0x0500)
  848. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0205_v0_0_c_ifspec;
  849. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0205_v0_0_s_ifspec;
  850. #ifndef __ICategoryProvider_INTERFACE_DEFINED__
  851. #define __ICategoryProvider_INTERFACE_DEFINED__
  852. /* interface ICategoryProvider */
  853. /* [unique][object][uuid][helpstring] */ 
  854. EXTERN_C const IID IID_ICategoryProvider;
  855. #if defined(__cplusplus) && !defined(CINTERFACE)
  856.     
  857.     MIDL_INTERFACE("9af64809-5864-4c26-a720-c1f78c086ee3")
  858.     ICategoryProvider : public IUnknown
  859.     {
  860.     public:
  861.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CanCategorizeOnSCID( 
  862.             SHCOLUMNID *pscid) = 0;
  863.         
  864.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDefaultCategory( 
  865.             GUID *pguid,
  866.             SHCOLUMNID *pscid) = 0;
  867.         
  868.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCategoryForSCID( 
  869.             SHCOLUMNID *pscid,
  870.             GUID *pguid) = 0;
  871.         
  872.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnumCategories( 
  873.             IEnumGUID **penum) = 0;
  874.         
  875.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCategoryName( 
  876.             GUID *pguid,
  877.             LPWSTR pszName,
  878.             UINT cch) = 0;
  879.         
  880.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateCategory( 
  881.             GUID *pguid,
  882.             REFIID riid,
  883.             /* [iid_is] */ void **ppv) = 0;
  884.         
  885.     };
  886.     
  887. #else  /* C style interface */
  888.     typedef struct ICategoryProviderVtbl
  889.     {
  890.         BEGIN_INTERFACE
  891.         
  892.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  893.             ICategoryProvider * This,
  894.             /* [in] */ REFIID riid,
  895.             /* [iid_is][out] */ void **ppvObject);
  896.         
  897.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  898.             ICategoryProvider * This);
  899.         
  900.         ULONG ( STDMETHODCALLTYPE *Release )( 
  901.             ICategoryProvider * This);
  902.         
  903.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CanCategorizeOnSCID )( 
  904.             ICategoryProvider * This,
  905.             SHCOLUMNID *pscid);
  906.         
  907.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultCategory )( 
  908.             ICategoryProvider * This,
  909.             GUID *pguid,
  910.             SHCOLUMNID *pscid);
  911.         
  912.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCategoryForSCID )( 
  913.             ICategoryProvider * This,
  914.             SHCOLUMNID *pscid,
  915.             GUID *pguid);
  916.         
  917.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumCategories )( 
  918.             ICategoryProvider * This,
  919.             IEnumGUID **penum);
  920.         
  921.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCategoryName )( 
  922.             ICategoryProvider * This,
  923.             GUID *pguid,
  924.             LPWSTR pszName,
  925.             UINT cch);
  926.         
  927.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateCategory )( 
  928.             ICategoryProvider * This,
  929.             GUID *pguid,
  930.             REFIID riid,
  931.             /* [iid_is] */ void **ppv);
  932.         
  933.         END_INTERFACE
  934.     } ICategoryProviderVtbl;
  935.     interface ICategoryProvider
  936.     {
  937.         CONST_VTBL struct ICategoryProviderVtbl *lpVtbl;
  938.     };
  939.     
  940. #ifdef COBJMACROS
  941. #define ICategoryProvider_QueryInterface(This,riid,ppvObject)
  942.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  943. #define ICategoryProvider_AddRef(This)
  944.     (This)->lpVtbl -> AddRef(This)
  945. #define ICategoryProvider_Release(This)
  946.     (This)->lpVtbl -> Release(This)
  947. #define ICategoryProvider_CanCategorizeOnSCID(This,pscid)
  948.     (This)->lpVtbl -> CanCategorizeOnSCID(This,pscid)
  949. #define ICategoryProvider_GetDefaultCategory(This,pguid,pscid)
  950.     (This)->lpVtbl -> GetDefaultCategory(This,pguid,pscid)
  951. #define ICategoryProvider_GetCategoryForSCID(This,pscid,pguid)
  952.     (This)->lpVtbl -> GetCategoryForSCID(This,pscid,pguid)
  953. #define ICategoryProvider_EnumCategories(This,penum)
  954.     (This)->lpVtbl -> EnumCategories(This,penum)
  955. #define ICategoryProvider_GetCategoryName(This,pguid,pszName,cch)
  956.     (This)->lpVtbl -> GetCategoryName(This,pguid,pszName,cch)
  957. #define ICategoryProvider_CreateCategory(This,pguid,riid,ppv)
  958.     (This)->lpVtbl -> CreateCategory(This,pguid,riid,ppv)
  959. #endif /* COBJMACROS */
  960. #endif  /* C style interface */
  961. /* [helpstring] */ HRESULT STDMETHODCALLTYPE ICategoryProvider_CanCategorizeOnSCID_Proxy( 
  962.     ICategoryProvider * This,
  963.     SHCOLUMNID *pscid);
  964. void __RPC_STUB ICategoryProvider_CanCategorizeOnSCID_Stub(
  965.     IRpcStubBuffer *This,
  966.     IRpcChannelBuffer *_pRpcChannelBuffer,
  967.     PRPC_MESSAGE _pRpcMessage,
  968.     DWORD *_pdwStubPhase);
  969. /* [helpstring] */ HRESULT STDMETHODCALLTYPE ICategoryProvider_GetDefaultCategory_Proxy( 
  970.     ICategoryProvider * This,
  971.     GUID *pguid,
  972.     SHCOLUMNID *pscid);
  973. void __RPC_STUB ICategoryProvider_GetDefaultCategory_Stub(
  974.     IRpcStubBuffer *This,
  975.     IRpcChannelBuffer *_pRpcChannelBuffer,
  976.     PRPC_MESSAGE _pRpcMessage,
  977.     DWORD *_pdwStubPhase);
  978. /* [helpstring] */ HRESULT STDMETHODCALLTYPE ICategoryProvider_GetCategoryForSCID_Proxy( 
  979.     ICategoryProvider * This,
  980.     SHCOLUMNID *pscid,
  981.     GUID *pguid);
  982. void __RPC_STUB ICategoryProvider_GetCategoryForSCID_Stub(
  983.     IRpcStubBuffer *This,
  984.     IRpcChannelBuffer *_pRpcChannelBuffer,
  985.     PRPC_MESSAGE _pRpcMessage,
  986.     DWORD *_pdwStubPhase);
  987. /* [helpstring] */ HRESULT STDMETHODCALLTYPE ICategoryProvider_EnumCategories_Proxy( 
  988.     ICategoryProvider * This,
  989.     IEnumGUID **penum);
  990. void __RPC_STUB ICategoryProvider_EnumCategories_Stub(
  991.     IRpcStubBuffer *This,
  992.     IRpcChannelBuffer *_pRpcChannelBuffer,
  993.     PRPC_MESSAGE _pRpcMessage,
  994.     DWORD *_pdwStubPhase);
  995. /* [helpstring] */ HRESULT STDMETHODCALLTYPE ICategoryProvider_GetCategoryName_Proxy( 
  996.     ICategoryProvider * This,
  997.     GUID *pguid,
  998.     LPWSTR pszName,
  999.     UINT cch);
  1000. void __RPC_STUB ICategoryProvider_GetCategoryName_Stub(
  1001.     IRpcStubBuffer *This,
  1002.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1003.     PRPC_MESSAGE _pRpcMessage,
  1004.     DWORD *_pdwStubPhase);
  1005. /* [helpstring] */ HRESULT STDMETHODCALLTYPE ICategoryProvider_CreateCategory_Proxy( 
  1006.     ICategoryProvider * This,
  1007.     GUID *pguid,
  1008.     REFIID riid,
  1009.     /* [iid_is] */ void **ppv);
  1010. void __RPC_STUB ICategoryProvider_CreateCategory_Stub(
  1011.     IRpcStubBuffer *This,
  1012.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1013.     PRPC_MESSAGE _pRpcMessage,
  1014.     DWORD *_pdwStubPhase);
  1015. #endif  /* __ICategoryProvider_INTERFACE_DEFINED__ */
  1016. /* interface __MIDL_itf_shobjidl_0206 */
  1017. /* [local] */ 
  1018. typedef /* [public][public][public][v1_enum] */ 
  1019. enum __MIDL___MIDL_itf_shobjidl_0206_0001
  1020.     { CATINFO_NORMAL = 0,
  1021. CATINFO_COLLAPSED = 0x1,
  1022. CATINFO_HIDDEN = 0x2
  1023.     }  CATEGORYINFO_FLAGS;
  1024. typedef /* [public][public][v1_enum] */ 
  1025. enum __MIDL___MIDL_itf_shobjidl_0206_0002
  1026.     { CATSORT_DEFAULT = 0,
  1027. CATSORT_NAME = 0x1
  1028.     }  CATSORT_FLAGS;
  1029. typedef /* [public][public] */ struct __MIDL___MIDL_itf_shobjidl_0206_0003
  1030.     {
  1031.     CATEGORYINFO_FLAGS cif;
  1032.     WCHAR wszName[ 260 ];
  1033.     }  CATEGORY_INFO;
  1034. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0206_v0_0_c_ifspec;
  1035. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0206_v0_0_s_ifspec;
  1036. #ifndef __ICategorizer_INTERFACE_DEFINED__
  1037. #define __ICategorizer_INTERFACE_DEFINED__
  1038. /* interface ICategorizer */
  1039. /* [unique][object][uuid][helpstring] */ 
  1040. EXTERN_C const IID IID_ICategorizer;
  1041. #if defined(__cplusplus) && !defined(CINTERFACE)
  1042.     
  1043.     MIDL_INTERFACE("a3b14589-9174-49a8-89a3-06a1ae2b9ba7")
  1044.     ICategorizer : public IUnknown
  1045.     {
  1046.     public:
  1047.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDescription( 
  1048.             LPWSTR pszDesc,
  1049.             UINT cch) = 0;
  1050.         
  1051.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCategory( 
  1052.             /* [in] */ UINT cidl,
  1053.             /* [size_is][in] */ LPCITEMIDLIST *apidl,
  1054.             /* [size_is][out][in] */ DWORD *rgCategoryIds) = 0;
  1055.         
  1056.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCategoryInfo( 
  1057.             DWORD dwCategoryId,
  1058.             CATEGORY_INFO *pci) = 0;
  1059.         
  1060.         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CompareCategory( 
  1061.             CATSORT_FLAGS csfFlags,
  1062.             DWORD dwCategoryId1,
  1063.             DWORD dwCategoryId2) = 0;
  1064.         
  1065.     };
  1066.     
  1067. #else  /* C style interface */
  1068.     typedef struct ICategorizerVtbl
  1069.     {
  1070.         BEGIN_INTERFACE
  1071.         
  1072.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1073.             ICategorizer * This,
  1074.             /* [in] */ REFIID riid,
  1075.             /* [iid_is][out] */ void **ppvObject);
  1076.         
  1077.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1078.             ICategorizer * This);
  1079.         
  1080.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1081.             ICategorizer * This);
  1082.         
  1083.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDescription )( 
  1084.             ICategorizer * This,
  1085.             LPWSTR pszDesc,
  1086.             UINT cch);
  1087.         
  1088.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCategory )( 
  1089.             ICategorizer * This,
  1090.             /* [in] */ UINT cidl,
  1091.             /* [size_is][in] */ LPCITEMIDLIST *apidl,
  1092.             /* [size_is][out][in] */ DWORD *rgCategoryIds);
  1093.         
  1094.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCategoryInfo )( 
  1095.             ICategorizer * This,
  1096.             DWORD dwCategoryId,
  1097.             CATEGORY_INFO *pci);
  1098.         
  1099.         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CompareCategory )( 
  1100.             ICategorizer * This,
  1101.             CATSORT_FLAGS csfFlags,
  1102.             DWORD dwCategoryId1,
  1103.             DWORD dwCategoryId2);
  1104.         
  1105.         END_INTERFACE
  1106.     } ICategorizerVtbl;
  1107.     interface ICategorizer
  1108.     {
  1109.         CONST_VTBL struct ICategorizerVtbl *lpVtbl;
  1110.     };
  1111.     
  1112. #ifdef COBJMACROS
  1113. #define ICategorizer_QueryInterface(This,riid,ppvObject)
  1114.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1115. #define ICategorizer_AddRef(This)
  1116.     (This)->lpVtbl -> AddRef(This)
  1117. #define ICategorizer_Release(This)
  1118.     (This)->lpVtbl -> Release(This)
  1119. #define ICategorizer_GetDescription(This,pszDesc,cch)
  1120.     (This)->lpVtbl -> GetDescription(This,pszDesc,cch)
  1121. #define ICategorizer_GetCategory(This,cidl,apidl,rgCategoryIds)
  1122.     (This)->lpVtbl -> GetCategory(This,cidl,apidl,rgCategoryIds)
  1123. #define ICategorizer_GetCategoryInfo(This,dwCategoryId,pci)
  1124.     (This)->lpVtbl -> GetCategoryInfo(This,dwCategoryId,pci)
  1125. #define ICategorizer_CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2)
  1126.     (This)->lpVtbl -> CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2)
  1127. #endif /* COBJMACROS */
  1128. #endif  /* C style interface */
  1129. /* [helpstring] */ HRESULT STDMETHODCALLTYPE ICategorizer_GetDescription_Proxy( 
  1130.     ICategorizer * This,
  1131.     LPWSTR pszDesc,
  1132.     UINT cch);
  1133. void __RPC_STUB ICategorizer_GetDescription_Stub(
  1134.     IRpcStubBuffer *This,
  1135.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1136.     PRPC_MESSAGE _pRpcMessage,
  1137.     DWORD *_pdwStubPhase);
  1138. /* [helpstring] */ HRESULT STDMETHODCALLTYPE ICategorizer_GetCategory_Proxy( 
  1139.     ICategorizer * This,
  1140.     /* [in] */ UINT cidl,
  1141.     /* [size_is][in] */ LPCITEMIDLIST *apidl,
  1142.     /* [size_is][out][in] */ DWORD *rgCategoryIds);
  1143. void __RPC_STUB ICategorizer_GetCategory_Stub(
  1144.     IRpcStubBuffer *This,
  1145.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1146.     PRPC_MESSAGE _pRpcMessage,
  1147.     DWORD *_pdwStubPhase);
  1148. /* [helpstring] */ HRESULT STDMETHODCALLTYPE ICategorizer_GetCategoryInfo_Proxy( 
  1149.     ICategorizer * This,
  1150.     DWORD dwCategoryId,
  1151.     CATEGORY_INFO *pci);
  1152. void __RPC_STUB ICategorizer_GetCategoryInfo_Stub(
  1153.     IRpcStubBuffer *This,
  1154.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1155.     PRPC_MESSAGE _pRpcMessage,
  1156.     DWORD *_pdwStubPhase);
  1157. /* [helpstring] */ HRESULT STDMETHODCALLTYPE ICategorizer_CompareCategory_Proxy( 
  1158.     ICategorizer * This,
  1159.     CATSORT_FLAGS csfFlags,
  1160.     DWORD dwCategoryId1,
  1161.     DWORD dwCategoryId2);
  1162. void __RPC_STUB ICategorizer_CompareCategory_Stub(
  1163.     IRpcStubBuffer *This,
  1164.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1165.     PRPC_MESSAGE _pRpcMessage,
  1166.     DWORD *_pdwStubPhase);
  1167. #endif  /* __ICategorizer_INTERFACE_DEFINED__ */
  1168. /* interface __MIDL_itf_shobjidl_0207 */
  1169. /* [local] */ 
  1170. #endif // (_WIN32_IE >= 0x0500)
  1171. #ifdef UNICODE
  1172. #define IShellLink      IShellLinkW
  1173. #else
  1174. #define IShellLink      IShellLinkA
  1175. #endif
  1176. typedef /* [public] */ 
  1177. enum __MIDL___MIDL_itf_shobjidl_0207_0001
  1178.     { SLR_NO_UI = 0x1,
  1179. SLR_ANY_MATCH = 0x2,
  1180. SLR_UPDATE = 0x4,
  1181. SLR_NOUPDATE = 0x8,
  1182. SLR_NOSEARCH = 0x10,
  1183. SLR_NOTRACK = 0x20,
  1184. SLR_NOLINKINFO = 0x40,
  1185. SLR_INVOKE_MSI = 0x80,
  1186. SLR_NO_UI_WITH_MSG_PUMP = 0x101
  1187.     }  SLR_FLAGS;
  1188. typedef /* [public] */ 
  1189. enum __MIDL___MIDL_itf_shobjidl_0207_0002
  1190.     { SLGP_SHORTPATH = 0x1,
  1191. SLGP_UNCPRIORITY = 0x2,
  1192. SLGP_RAWPATH = 0x4
  1193.     }  SLGP_FLAGS;
  1194. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0207_v0_0_c_ifspec;
  1195. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0207_v0_0_s_ifspec;
  1196. #ifndef __IShellLinkA_INTERFACE_DEFINED__
  1197. #define __IShellLinkA_INTERFACE_DEFINED__
  1198. /* interface IShellLinkA */
  1199. /* [unique][object][uuid] */ 
  1200. EXTERN_C const IID IID_IShellLinkA;
  1201. #if defined(__cplusplus) && !defined(CINTERFACE)
  1202.     
  1203.     MIDL_INTERFACE("000214EE-0000-0000-C000-000000000046")
  1204.     IShellLinkA : public IUnknown
  1205.     {
  1206.     public:
  1207.         virtual HRESULT STDMETHODCALLTYPE GetPath( 
  1208.             /* [size_is][out] */ LPSTR pszFile,
  1209.             /* [in] */ int cch,
  1210.             /* [full][out][in] */ WIN32_FIND_DATAA *pfd,
  1211.             /* [in] */ DWORD fFlags) = 0;
  1212.         
  1213.         virtual HRESULT STDMETHODCALLTYPE GetIDList( 
  1214.             /* [out] */ LPITEMIDLIST *ppidl) = 0;
  1215.         
  1216.         virtual HRESULT STDMETHODCALLTYPE SetIDList( 
  1217.             /* [in] */ LPCITEMIDLIST pidl) = 0;
  1218.         
  1219.         virtual HRESULT STDMETHODCALLTYPE GetDescription( 
  1220.             /* [size_is][out] */ LPSTR pszName,
  1221.             /* [in] */ int cch) = 0;
  1222.         
  1223.         virtual HRESULT STDMETHODCALLTYPE SetDescription( 
  1224.             /* [in] */ LPCSTR pszName) = 0;
  1225.         
  1226.         virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory( 
  1227.             /* [size_is][out] */ LPSTR pszDir,
  1228.             /* [in] */ int cch) = 0;
  1229.         
  1230.         virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory( 
  1231.             /* [in] */ LPCSTR pszDir) = 0;
  1232.         
  1233.         virtual HRESULT STDMETHODCALLTYPE GetArguments( 
  1234.             /* [size_is][out] */ LPSTR pszArgs,
  1235.             /* [in] */ int cch) = 0;
  1236.         
  1237.         virtual HRESULT STDMETHODCALLTYPE SetArguments( 
  1238.             /* [in] */ LPCSTR pszArgs) = 0;
  1239.         
  1240.         virtual HRESULT STDMETHODCALLTYPE GetHotkey( 
  1241.             /* [out] */ WORD *pwHotkey) = 0;
  1242.         
  1243.         virtual HRESULT STDMETHODCALLTYPE SetHotkey( 
  1244.             /* [in] */ WORD wHotkey) = 0;
  1245.         
  1246.         virtual HRESULT STDMETHODCALLTYPE GetShowCmd( 
  1247.             /* [out] */ int *piShowCmd) = 0;
  1248.         
  1249.         virtual HRESULT STDMETHODCALLTYPE SetShowCmd( 
  1250.             /* [in] */ int iShowCmd) = 0;
  1251.         
  1252.         virtual HRESULT STDMETHODCALLTYPE GetIconLocation( 
  1253.             /* [size_is][out] */ LPSTR pszIconPath,
  1254.             /* [in] */ int cch,
  1255.             /* [out] */ int *piIcon) = 0;
  1256.         
  1257.         virtual HRESULT STDMETHODCALLTYPE SetIconLocation( 
  1258.             /* [in] */ LPCSTR pszIconPath,
  1259.             /* [in] */ int iIcon) = 0;
  1260.         
  1261.         virtual HRESULT STDMETHODCALLTYPE SetRelativePath( 
  1262.             /* [in] */ LPCSTR pszPathRel,
  1263.             /* [in] */ DWORD dwReserved) = 0;
  1264.         
  1265.         virtual HRESULT STDMETHODCALLTYPE Resolve( 
  1266.             /* [in] */ HWND hwnd,
  1267.             /* [in] */ DWORD fFlags) = 0;
  1268.         
  1269.         virtual HRESULT STDMETHODCALLTYPE SetPath( 
  1270.             /* [in] */ LPCSTR pszFile) = 0;
  1271.         
  1272.     };
  1273.     
  1274. #else  /* C style interface */
  1275.     typedef struct IShellLinkAVtbl
  1276.     {
  1277.         BEGIN_INTERFACE
  1278.         
  1279.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1280.             IShellLinkA * This,
  1281.             /* [in] */ REFIID riid,
  1282.             /* [iid_is][out] */ void **ppvObject);
  1283.         
  1284.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1285.             IShellLinkA * This);
  1286.         
  1287.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1288.             IShellLinkA * This);
  1289.         
  1290.         HRESULT ( STDMETHODCALLTYPE *GetPath )( 
  1291.             IShellLinkA * This,
  1292.             /* [size_is][out] */ LPSTR pszFile,
  1293.             /* [in] */ int cch,
  1294.             /* [full][out][in] */ WIN32_FIND_DATAA *pfd,
  1295.             /* [in] */ DWORD fFlags);
  1296.         
  1297.         HRESULT ( STDMETHODCALLTYPE *GetIDList )( 
  1298.             IShellLinkA * This,
  1299.             /* [out] */ LPITEMIDLIST *ppidl);
  1300.         
  1301.         HRESULT ( STDMETHODCALLTYPE *SetIDList )( 
  1302.             IShellLinkA * This,
  1303.             /* [in] */ LPCITEMIDLIST pidl);
  1304.         
  1305.         HRESULT ( STDMETHODCALLTYPE *GetDescription )( 
  1306.             IShellLinkA * This,
  1307.             /* [size_is][out] */ LPSTR pszName,
  1308.             /* [in] */ int cch);
  1309.         
  1310.         HRESULT ( STDMETHODCALLTYPE *SetDescription )( 
  1311.             IShellLinkA * This,
  1312.             /* [in] */ LPCSTR pszName);
  1313.         
  1314.         HRESULT ( STDMETHODCALLTYPE *GetWorkingDirectory )( 
  1315.             IShellLinkA * This,
  1316.             /* [size_is][out] */ LPSTR pszDir,
  1317.             /* [in] */ int cch);
  1318.         
  1319.         HRESULT ( STDMETHODCALLTYPE *SetWorkingDirectory )( 
  1320.             IShellLinkA * This,
  1321.             /* [in] */ LPCSTR pszDir);
  1322.         
  1323.         HRESULT ( STDMETHODCALLTYPE *GetArguments )( 
  1324.             IShellLinkA * This,
  1325.             /* [size_is][out] */ LPSTR pszArgs,
  1326.             /* [in] */ int cch);
  1327.         
  1328.         HRESULT ( STDMETHODCALLTYPE *SetArguments )( 
  1329.             IShellLinkA * This,
  1330.             /* [in] */ LPCSTR pszArgs);
  1331.         
  1332.         HRESULT ( STDMETHODCALLTYPE *GetHotkey )( 
  1333.             IShellLinkA * This,
  1334.             /* [out] */ WORD *pwHotkey);
  1335.         
  1336.         HRESULT ( STDMETHODCALLTYPE *SetHotkey )( 
  1337.             IShellLinkA * This,
  1338.             /* [in] */ WORD wHotkey);
  1339.         
  1340.         HRESULT ( STDMETHODCALLTYPE *GetShowCmd )( 
  1341.             IShellLinkA * This,
  1342.             /* [out] */ int *piShowCmd);
  1343.         
  1344.         HRESULT ( STDMETHODCALLTYPE *SetShowCmd )( 
  1345.             IShellLinkA * This,
  1346.             /* [in] */ int iShowCmd);
  1347.         
  1348.         HRESULT ( STDMETHODCALLTYPE *GetIconLocation )( 
  1349.             IShellLinkA * This,
  1350.             /* [size_is][out] */ LPSTR pszIconPath,
  1351.             /* [in] */ int cch,
  1352.             /* [out] */ int *piIcon);
  1353.         
  1354.         HRESULT ( STDMETHODCALLTYPE *SetIconLocation )( 
  1355.             IShellLinkA * This,
  1356.             /* [in] */ LPCSTR pszIconPath,
  1357.             /* [in] */ int iIcon);
  1358.         
  1359.         HRESULT ( STDMETHODCALLTYPE *SetRelativePath )( 
  1360.             IShellLinkA * This,
  1361.             /* [in] */ LPCSTR pszPathRel,
  1362.             /* [in] */ DWORD dwReserved);
  1363.         
  1364.         HRESULT ( STDMETHODCALLTYPE *Resolve )( 
  1365.             IShellLinkA * This,
  1366.             /* [in] */ HWND hwnd,
  1367.             /* [in] */ DWORD fFlags);
  1368.         
  1369.         HRESULT ( STDMETHODCALLTYPE *SetPath )( 
  1370.             IShellLinkA * This,
  1371.             /* [in] */ LPCSTR pszFile);
  1372.         
  1373.         END_INTERFACE
  1374.     } IShellLinkAVtbl;
  1375.     interface IShellLinkA
  1376.     {
  1377.         CONST_VTBL struct IShellLinkAVtbl *lpVtbl;
  1378.     };
  1379.     
  1380. #ifdef COBJMACROS
  1381. #define IShellLinkA_QueryInterface(This,riid,ppvObject)
  1382.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1383. #define IShellLinkA_AddRef(This)
  1384.     (This)->lpVtbl -> AddRef(This)
  1385. #define IShellLinkA_Release(This)
  1386.     (This)->lpVtbl -> Release(This)
  1387. #define IShellLinkA_GetPath(This,pszFile,cch,pfd,fFlags)
  1388.     (This)->lpVtbl -> GetPath(This,pszFile,cch,pfd,fFlags)
  1389. #define IShellLinkA_GetIDList(This,ppidl)
  1390.     (This)->lpVtbl -> GetIDList(This,ppidl)
  1391. #define IShellLinkA_SetIDList(This,pidl)
  1392.     (This)->lpVtbl -> SetIDList(This,pidl)
  1393. #define IShellLinkA_GetDescription(This,pszName,cch)
  1394.     (This)->lpVtbl -> GetDescription(This,pszName,cch)
  1395. #define IShellLinkA_SetDescription(This,pszName)
  1396.     (This)->lpVtbl -> SetDescription(This,pszName)
  1397. #define IShellLinkA_GetWorkingDirectory(This,pszDir,cch)
  1398.     (This)->lpVtbl -> GetWorkingDirectory(This,pszDir,cch)
  1399. #define IShellLinkA_SetWorkingDirectory(This,pszDir)
  1400.     (This)->lpVtbl -> SetWorkingDirectory(This,pszDir)
  1401. #define IShellLinkA_GetArguments(This,pszArgs,cch)
  1402.     (This)->lpVtbl -> GetArguments(This,pszArgs,cch)
  1403. #define IShellLinkA_SetArguments(This,pszArgs)
  1404.     (This)->lpVtbl -> SetArguments(This,pszArgs)
  1405. #define IShellLinkA_GetHotkey(This,pwHotkey)
  1406.     (This)->lpVtbl -> GetHotkey(This,pwHotkey)
  1407. #define IShellLinkA_SetHotkey(This,wHotkey)
  1408.     (This)->lpVtbl -> SetHotkey(This,wHotkey)
  1409. #define IShellLinkA_GetShowCmd(This,piShowCmd)
  1410.     (This)->lpVtbl -> GetShowCmd(This,piShowCmd)
  1411. #define IShellLinkA_SetShowCmd(This,iShowCmd)
  1412.     (This)->lpVtbl -> SetShowCmd(This,iShowCmd)
  1413. #define IShellLinkA_GetIconLocation(This,pszIconPath,cch,piIcon)
  1414.     (This)->lpVtbl -> GetIconLocation(This,pszIconPath,cch,piIcon)
  1415. #define IShellLinkA_SetIconLocation(This,pszIconPath,iIcon)
  1416.     (This)->lpVtbl -> SetIconLocation(This,pszIconPath,iIcon)
  1417. #define IShellLinkA_SetRelativePath(This,pszPathRel,dwReserved)
  1418.     (This)->lpVtbl -> SetRelativePath(This,pszPathRel,dwReserved)
  1419. #define IShellLinkA_Resolve(This,hwnd,fFlags)
  1420.     (This)->lpVtbl -> Resolve(This,hwnd,fFlags)
  1421. #define IShellLinkA_SetPath(This,pszFile)
  1422.     (This)->lpVtbl -> SetPath(This,pszFile)
  1423. #endif /* COBJMACROS */
  1424. #endif  /* C style interface */
  1425. HRESULT STDMETHODCALLTYPE IShellLinkA_GetPath_Proxy( 
  1426.     IShellLinkA * This,
  1427.     /* [size_is][out] */ LPSTR pszFile,
  1428.     /* [in] */ int cch,
  1429.     /* [full][out][in] */ WIN32_FIND_DATAA *pfd,
  1430.     /* [in] */ DWORD fFlags);
  1431. void __RPC_STUB IShellLinkA_GetPath_Stub(
  1432.     IRpcStubBuffer *This,
  1433.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1434.     PRPC_MESSAGE _pRpcMessage,
  1435.     DWORD *_pdwStubPhase);
  1436. HRESULT STDMETHODCALLTYPE IShellLinkA_GetIDList_Proxy( 
  1437.     IShellLinkA * This,
  1438.     /* [out] */ LPITEMIDLIST *ppidl);
  1439. void __RPC_STUB IShellLinkA_GetIDList_Stub(
  1440.     IRpcStubBuffer *This,
  1441.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1442.     PRPC_MESSAGE _pRpcMessage,
  1443.     DWORD *_pdwStubPhase);
  1444. HRESULT STDMETHODCALLTYPE IShellLinkA_SetIDList_Proxy( 
  1445.     IShellLinkA * This,
  1446.     /* [in] */ LPCITEMIDLIST pidl);
  1447. void __RPC_STUB IShellLinkA_SetIDList_Stub(
  1448.     IRpcStubBuffer *This,
  1449.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1450.     PRPC_MESSAGE _pRpcMessage,
  1451.     DWORD *_pdwStubPhase);
  1452. HRESULT STDMETHODCALLTYPE IShellLinkA_GetDescription_Proxy( 
  1453.     IShellLinkA * This,
  1454.     /* [size_is][out] */ LPSTR pszName,
  1455.     /* [in] */ int cch);
  1456. void __RPC_STUB IShellLinkA_GetDescription_Stub(
  1457.     IRpcStubBuffer *This,
  1458.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1459.     PRPC_MESSAGE _pRpcMessage,
  1460.     DWORD *_pdwStubPhase);
  1461. HRESULT STDMETHODCALLTYPE IShellLinkA_SetDescription_Proxy( 
  1462.     IShellLinkA * This,
  1463.     /* [in] */ LPCSTR pszName);
  1464. void __RPC_STUB IShellLinkA_SetDescription_Stub(
  1465.     IRpcStubBuffer *This,
  1466.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1467.     PRPC_MESSAGE _pRpcMessage,
  1468.     DWORD *_pdwStubPhase);
  1469. HRESULT STDMETHODCALLTYPE IShellLinkA_GetWorkingDirectory_Proxy( 
  1470.     IShellLinkA * This,
  1471.     /* [size_is][out] */ LPSTR pszDir,
  1472.     /* [in] */ int cch);
  1473. void __RPC_STUB IShellLinkA_GetWorkingDirectory_Stub(
  1474.     IRpcStubBuffer *This,
  1475.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1476.     PRPC_MESSAGE _pRpcMessage,
  1477.     DWORD *_pdwStubPhase);
  1478. HRESULT STDMETHODCALLTYPE IShellLinkA_SetWorkingDirectory_Proxy( 
  1479.     IShellLinkA * This,
  1480.     /* [in] */ LPCSTR pszDir);
  1481. void __RPC_STUB IShellLinkA_SetWorkingDirectory_Stub(
  1482.     IRpcStubBuffer *This,
  1483.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1484.     PRPC_MESSAGE _pRpcMessage,
  1485.     DWORD *_pdwStubPhase);
  1486. HRESULT STDMETHODCALLTYPE IShellLinkA_GetArguments_Proxy( 
  1487.     IShellLinkA * This,
  1488.     /* [size_is][out] */ LPSTR pszArgs,
  1489.     /* [in] */ int cch);
  1490. void __RPC_STUB IShellLinkA_GetArguments_Stub(
  1491.     IRpcStubBuffer *This,
  1492.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1493.     PRPC_MESSAGE _pRpcMessage,
  1494.     DWORD *_pdwStubPhase);
  1495. HRESULT STDMETHODCALLTYPE IShellLinkA_SetArguments_Proxy( 
  1496.     IShellLinkA * This,
  1497.     /* [in] */ LPCSTR pszArgs);
  1498. void __RPC_STUB IShellLinkA_SetArguments_Stub(
  1499.     IRpcStubBuffer *This,
  1500.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1501.     PRPC_MESSAGE _pRpcMessage,
  1502.     DWORD *_pdwStubPhase);
  1503. HRESULT STDMETHODCALLTYPE IShellLinkA_GetHotkey_Proxy( 
  1504.     IShellLinkA * This,
  1505.     /* [out] */ WORD *pwHotkey);
  1506. void __RPC_STUB IShellLinkA_GetHotkey_Stub(
  1507.     IRpcStubBuffer *This,
  1508.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1509.     PRPC_MESSAGE _pRpcMessage,
  1510.     DWORD *_pdwStubPhase);
  1511. HRESULT STDMETHODCALLTYPE IShellLinkA_SetHotkey_Proxy( 
  1512.     IShellLinkA * This,
  1513.     /* [in] */ WORD wHotkey);
  1514. void __RPC_STUB IShellLinkA_SetHotkey_Stub(
  1515.     IRpcStubBuffer *This,
  1516.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1517.     PRPC_MESSAGE _pRpcMessage,
  1518.     DWORD *_pdwStubPhase);
  1519. HRESULT STDMETHODCALLTYPE IShellLinkA_GetShowCmd_Proxy( 
  1520.     IShellLinkA * This,
  1521.     /* [out] */ int *piShowCmd);
  1522. void __RPC_STUB IShellLinkA_GetShowCmd_Stub(
  1523.     IRpcStubBuffer *This,
  1524.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1525.     PRPC_MESSAGE _pRpcMessage,
  1526.     DWORD *_pdwStubPhase);
  1527. HRESULT STDMETHODCALLTYPE IShellLinkA_SetShowCmd_Proxy( 
  1528.     IShellLinkA * This,
  1529.     /* [in] */ int iShowCmd);
  1530. void __RPC_STUB IShellLinkA_SetShowCmd_Stub(
  1531.     IRpcStubBuffer *This,
  1532.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1533.     PRPC_MESSAGE _pRpcMessage,
  1534.     DWORD *_pdwStubPhase);
  1535. HRESULT STDMETHODCALLTYPE IShellLinkA_GetIconLocation_Proxy( 
  1536.     IShellLinkA * This,
  1537.     /* [size_is][out] */ LPSTR pszIconPath,
  1538.     /* [in] */ int cch,
  1539.     /* [out] */ int *piIcon);
  1540. void __RPC_STUB IShellLinkA_GetIconLocation_Stub(
  1541.     IRpcStubBuffer *This,
  1542.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1543.     PRPC_MESSAGE _pRpcMessage,
  1544.     DWORD *_pdwStubPhase);
  1545. HRESULT STDMETHODCALLTYPE IShellLinkA_SetIconLocation_Proxy( 
  1546.     IShellLinkA * This,
  1547.     /* [in] */ LPCSTR pszIconPath,
  1548.     /* [in] */ int iIcon);
  1549. void __RPC_STUB IShellLinkA_SetIconLocation_Stub(
  1550.     IRpcStubBuffer *This,
  1551.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1552.     PRPC_MESSAGE _pRpcMessage,
  1553.     DWORD *_pdwStubPhase);
  1554. HRESULT STDMETHODCALLTYPE IShellLinkA_SetRelativePath_Proxy( 
  1555.     IShellLinkA * This,
  1556.     /* [in] */ LPCSTR pszPathRel,
  1557.     /* [in] */ DWORD dwReserved);
  1558. void __RPC_STUB IShellLinkA_SetRelativePath_Stub(
  1559.     IRpcStubBuffer *This,
  1560.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1561.     PRPC_MESSAGE _pRpcMessage,
  1562.     DWORD *_pdwStubPhase);
  1563. HRESULT STDMETHODCALLTYPE IShellLinkA_Resolve_Proxy( 
  1564.     IShellLinkA * This,
  1565.     /* [in] */ HWND hwnd,
  1566.     /* [in] */ DWORD fFlags);
  1567. void __RPC_STUB IShellLinkA_Resolve_Stub(
  1568.     IRpcStubBuffer *This,
  1569.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1570.     PRPC_MESSAGE _pRpcMessage,
  1571.     DWORD *_pdwStubPhase);
  1572. HRESULT STDMETHODCALLTYPE IShellLinkA_SetPath_Proxy( 
  1573.     IShellLinkA * This,
  1574.     /* [in] */ LPCSTR pszFile);
  1575. void __RPC_STUB IShellLinkA_SetPath_Stub(
  1576.     IRpcStubBuffer *This,
  1577.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1578.     PRPC_MESSAGE _pRpcMessage,
  1579.     DWORD *_pdwStubPhase);
  1580. #endif  /* __IShellLinkA_INTERFACE_DEFINED__ */
  1581. #ifndef __IShellLinkW_INTERFACE_DEFINED__
  1582. #define __IShellLinkW_INTERFACE_DEFINED__
  1583. /* interface IShellLinkW */
  1584. /* [unique][object][uuid] */ 
  1585. EXTERN_C const IID IID_IShellLinkW;
  1586. #if defined(__cplusplus) && !defined(CINTERFACE)
  1587.     
  1588.     MIDL_INTERFACE("000214F9-0000-0000-C000-000000000046")
  1589.     IShellLinkW : public IUnknown
  1590.     {
  1591.     public:
  1592.         virtual HRESULT STDMETHODCALLTYPE GetPath( 
  1593.             /* [size_is][out] */ LPWSTR pszFile,
  1594.             /* [in] */ int cch,
  1595.             /* [full][out][in] */ WIN32_FIND_DATAW *pfd,
  1596.             /* [in] */ DWORD fFlags) = 0;
  1597.         
  1598.         virtual HRESULT STDMETHODCALLTYPE GetIDList( 
  1599.             /* [out] */ LPITEMIDLIST *ppidl) = 0;
  1600.         
  1601.         virtual HRESULT STDMETHODCALLTYPE SetIDList( 
  1602.             /* [in] */ LPCITEMIDLIST pidl) = 0;
  1603.         
  1604.         virtual HRESULT STDMETHODCALLTYPE GetDescription( 
  1605.             /* [size_is][out] */ LPWSTR pszName,
  1606.             int cch) = 0;
  1607.         
  1608.         virtual HRESULT STDMETHODCALLTYPE SetDescription( 
  1609.             /* [in] */ LPCWSTR pszName) = 0;
  1610.         
  1611.         virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory( 
  1612.             /* [size_is][out] */ LPWSTR pszDir,
  1613.             int cch) = 0;
  1614.         
  1615.         virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory( 
  1616.             /* [in] */ LPCWSTR pszDir) = 0;
  1617.         
  1618.         virtual HRESULT STDMETHODCALLTYPE GetArguments( 
  1619.             /* [size_is][out] */ LPWSTR pszArgs,
  1620.             int cch) = 0;
  1621.         
  1622.         virtual HRESULT STDMETHODCALLTYPE SetArguments( 
  1623.             /* [in] */ LPCWSTR pszArgs) = 0;
  1624.         
  1625.         virtual HRESULT STDMETHODCALLTYPE GetHotkey( 
  1626.             /* [out] */ WORD *pwHotkey) = 0;
  1627.         
  1628.         virtual HRESULT STDMETHODCALLTYPE SetHotkey( 
  1629.             /* [in] */ WORD wHotkey) = 0;
  1630.         
  1631.         virtual HRESULT STDMETHODCALLTYPE GetShowCmd( 
  1632.             /* [out] */ int *piShowCmd) = 0;
  1633.         
  1634.         virtual HRESULT STDMETHODCALLTYPE SetShowCmd( 
  1635.             /* [in] */ int iShowCmd) = 0;
  1636.         
  1637.         virtual HRESULT STDMETHODCALLTYPE GetIconLocation( 
  1638.             /* [size_is][out] */ LPWSTR pszIconPath,
  1639.             /* [in] */ int cch,
  1640.             /* [out] */ int *piIcon) = 0;
  1641.         
  1642.         virtual HRESULT STDMETHODCALLTYPE SetIconLocation( 
  1643.             /* [in] */ LPCWSTR pszIconPath,
  1644.             /* [in] */ int iIcon) = 0;
  1645.         
  1646.         virtual HRESULT STDMETHODCALLTYPE SetRelativePath( 
  1647.             /* [in] */ LPCWSTR pszPathRel,
  1648.             /* [in] */ DWORD dwReserved) = 0;
  1649.         
  1650.         virtual HRESULT STDMETHODCALLTYPE Resolve( 
  1651.             /* [in] */ HWND hwnd,
  1652.             /* [in] */ DWORD fFlags) = 0;
  1653.         
  1654.         virtual HRESULT STDMETHODCALLTYPE SetPath( 
  1655.             /* [in] */ LPCWSTR pszFile) = 0;
  1656.         
  1657.     };
  1658.     
  1659. #else  /* C style interface */
  1660.     typedef struct IShellLinkWVtbl
  1661.     {
  1662.         BEGIN_INTERFACE
  1663.         
  1664.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1665.             IShellLinkW * This,
  1666.             /* [in] */ REFIID riid,
  1667.             /* [iid_is][out] */ void **ppvObject);
  1668.         
  1669.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  1670.             IShellLinkW * This);
  1671.         
  1672.         ULONG ( STDMETHODCALLTYPE *Release )( 
  1673.             IShellLinkW * This);
  1674.         
  1675.         HRESULT ( STDMETHODCALLTYPE *GetPath )( 
  1676.             IShellLinkW * This,
  1677.             /* [size_is][out] */ LPWSTR pszFile,
  1678.             /* [in] */ int cch,
  1679.             /* [full][out][in] */ WIN32_FIND_DATAW *pfd,
  1680.             /* [in] */ DWORD fFlags);
  1681.         
  1682.         HRESULT ( STDMETHODCALLTYPE *GetIDList )( 
  1683.             IShellLinkW * This,
  1684.             /* [out] */ LPITEMIDLIST *ppidl);
  1685.         
  1686.         HRESULT ( STDMETHODCALLTYPE *SetIDList )( 
  1687.             IShellLinkW * This,
  1688.             /* [in] */ LPCITEMIDLIST pidl);
  1689.         
  1690.         HRESULT ( STDMETHODCALLTYPE *GetDescription )( 
  1691.             IShellLinkW * This,
  1692.             /* [size_is][out] */ LPWSTR pszName,
  1693.             int cch);
  1694.         
  1695.         HRESULT ( STDMETHODCALLTYPE *SetDescription )( 
  1696.             IShellLinkW * This,
  1697.             /* [in] */ LPCWSTR pszName);
  1698.         
  1699.         HRESULT ( STDMETHODCALLTYPE *GetWorkingDirectory )( 
  1700.             IShellLinkW * This,
  1701.             /* [size_is][out] */ LPWSTR pszDir,
  1702.             int cch);
  1703.         
  1704.         HRESULT ( STDMETHODCALLTYPE *SetWorkingDirectory )( 
  1705.             IShellLinkW * This,
  1706.             /* [in] */ LPCWSTR pszDir);
  1707.         
  1708.         HRESULT ( STDMETHODCALLTYPE *GetArguments )( 
  1709.             IShellLinkW * This,
  1710.             /* [size_is][out] */ LPWSTR pszArgs,
  1711.             int cch);
  1712.         
  1713.         HRESULT ( STDMETHODCALLTYPE *SetArguments )( 
  1714.             IShellLinkW * This,
  1715.             /* [in] */ LPCWSTR pszArgs);
  1716.         
  1717.         HRESULT ( STDMETHODCALLTYPE *GetHotkey )( 
  1718.             IShellLinkW * This,
  1719.             /* [out] */ WORD *pwHotkey);
  1720.         
  1721.         HRESULT ( STDMETHODCALLTYPE *SetHotkey )( 
  1722.             IShellLinkW * This,
  1723.             /* [in] */ WORD wHotkey);
  1724.         
  1725.         HRESULT ( STDMETHODCALLTYPE *GetShowCmd )( 
  1726.             IShellLinkW * This,
  1727.             /* [out] */ int *piShowCmd);
  1728.         
  1729.         HRESULT ( STDMETHODCALLTYPE *SetShowCmd )( 
  1730.             IShellLinkW * This,
  1731.             /* [in] */ int iShowCmd);
  1732.         
  1733.         HRESULT ( STDMETHODCALLTYPE *GetIconLocation )( 
  1734.             IShellLinkW * This,
  1735.             /* [size_is][out] */ LPWSTR pszIconPath,
  1736.             /* [in] */ int cch,
  1737.             /* [out] */ int *piIcon);
  1738.         
  1739.         HRESULT ( STDMETHODCALLTYPE *SetIconLocation )( 
  1740.             IShellLinkW * This,
  1741.             /* [in] */ LPCWSTR pszIconPath,
  1742.             /* [in] */ int iIcon);
  1743.         
  1744.         HRESULT ( STDMETHODCALLTYPE *SetRelativePath )( 
  1745.             IShellLinkW * This,
  1746.             /* [in] */ LPCWSTR pszPathRel,
  1747.             /* [in] */ DWORD dwReserved);
  1748.         
  1749.         HRESULT ( STDMETHODCALLTYPE *Resolve )( 
  1750.             IShellLinkW * This,
  1751.             /* [in] */ HWND hwnd,
  1752.             /* [in] */ DWORD fFlags);
  1753.         
  1754.         HRESULT ( STDMETHODCALLTYPE *SetPath )( 
  1755.             IShellLinkW * This,
  1756.             /* [in] */ LPCWSTR pszFile);
  1757.         
  1758.         END_INTERFACE
  1759.     } IShellLinkWVtbl;
  1760.     interface IShellLinkW
  1761.     {
  1762.         CONST_VTBL struct IShellLinkWVtbl *lpVtbl;
  1763.     };
  1764.     
  1765. #ifdef COBJMACROS
  1766. #define IShellLinkW_QueryInterface(This,riid,ppvObject)
  1767.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1768. #define IShellLinkW_AddRef(This)
  1769.     (This)->lpVtbl -> AddRef(This)
  1770. #define IShellLinkW_Release(This)
  1771.     (This)->lpVtbl -> Release(This)
  1772. #define IShellLinkW_GetPath(This,pszFile,cch,pfd,fFlags)
  1773.     (This)->lpVtbl -> GetPath(This,pszFile,cch,pfd,fFlags)
  1774. #define IShellLinkW_GetIDList(This,ppidl)
  1775.     (This)->lpVtbl -> GetIDList(This,ppidl)
  1776. #define IShellLinkW_SetIDList(This,pidl)
  1777.     (This)->lpVtbl -> SetIDList(This,pidl)
  1778. #define IShellLinkW_GetDescription(This,pszName,cch)
  1779.     (This)->lpVtbl -> GetDescription(This,pszName,cch)
  1780. #define IShellLinkW_SetDescription(This,pszName)
  1781.     (This)->lpVtbl -> SetDescription(This,pszName)
  1782. #define IShellLinkW_GetWorkingDirectory(This,pszDir,cch)
  1783.     (This)->lpVtbl -> GetWorkingDirectory(This,pszDir,cch)
  1784. #define IShellLinkW_SetWorkingDirectory(This,pszDir)
  1785.     (This)->lpVtbl -> SetWorkingDirectory(This,pszDir)
  1786. #define IShellLinkW_GetArguments(This,pszArgs,cch)
  1787.     (This)->lpVtbl -> GetArguments(This,pszArgs,cch)
  1788. #define IShellLinkW_SetArguments(This,pszArgs)
  1789.     (This)->lpVtbl -> SetArguments(This,pszArgs)
  1790. #define IShellLinkW_GetHotkey(This,pwHotkey)
  1791.     (This)->lpVtbl -> GetHotkey(This,pwHotkey)
  1792. #define IShellLinkW_SetHotkey(This,wHotkey)
  1793.     (This)->lpVtbl -> SetHotkey(This,wHotkey)
  1794. #define IShellLinkW_GetShowCmd(This,piShowCmd)
  1795.     (This)->lpVtbl -> GetShowCmd(This,piShowCmd)
  1796. #define IShellLinkW_SetShowCmd(This,iShowCmd)
  1797.     (This)->lpVtbl -> SetShowCmd(This,iShowCmd)
  1798. #define IShellLinkW_GetIconLocation(This,pszIconPath,cch,piIcon)
  1799.     (This)->lpVtbl -> GetIconLocation(This,pszIconPath,cch,piIcon)
  1800. #define IShellLinkW_SetIconLocation(This,pszIconPath,iIcon)
  1801.     (This)->lpVtbl -> SetIconLocation(This,pszIconPath,iIcon)
  1802. #define IShellLinkW_SetRelativePath(This,pszPathRel,dwReserved)
  1803.     (This)->lpVtbl -> SetRelativePath(This,pszPathRel,dwReserved)
  1804. #define IShellLinkW_Resolve(This,hwnd,fFlags)
  1805.     (This)->lpVtbl -> Resolve(This,hwnd,fFlags)
  1806. #define IShellLinkW_SetPath(This,pszFile)
  1807.     (This)->lpVtbl -> SetPath(This,pszFile)
  1808. #endif /* COBJMACROS */
  1809. #endif  /* C style interface */
  1810. HRESULT STDMETHODCALLTYPE IShellLinkW_GetPath_Proxy( 
  1811.     IShellLinkW * This,
  1812.     /* [size_is][out] */ LPWSTR pszFile,
  1813.     /* [in] */ int cch,
  1814.     /* [full][out][in] */ WIN32_FIND_DATAW *pfd,
  1815.     /* [in] */ DWORD fFlags);
  1816. void __RPC_STUB IShellLinkW_GetPath_Stub(
  1817.     IRpcStubBuffer *This,
  1818.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1819.     PRPC_MESSAGE _pRpcMessage,
  1820.     DWORD *_pdwStubPhase);
  1821. HRESULT STDMETHODCALLTYPE IShellLinkW_GetIDList_Proxy( 
  1822.     IShellLinkW * This,
  1823.     /* [out] */ LPITEMIDLIST *ppidl);
  1824. void __RPC_STUB IShellLinkW_GetIDList_Stub(
  1825.     IRpcStubBuffer *This,
  1826.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1827.     PRPC_MESSAGE _pRpcMessage,
  1828.     DWORD *_pdwStubPhase);
  1829. HRESULT STDMETHODCALLTYPE IShellLinkW_SetIDList_Proxy( 
  1830.     IShellLinkW * This,
  1831.     /* [in] */ LPCITEMIDLIST pidl);
  1832. void __RPC_STUB IShellLinkW_SetIDList_Stub(
  1833.     IRpcStubBuffer *This,
  1834.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1835.     PRPC_MESSAGE _pRpcMessage,
  1836.     DWORD *_pdwStubPhase);
  1837. HRESULT STDMETHODCALLTYPE IShellLinkW_GetDescription_Proxy( 
  1838.     IShellLinkW * This,
  1839.     /* [size_is][out] */ LPWSTR pszName,
  1840.     int cch);
  1841. void __RPC_STUB IShellLinkW_GetDescription_Stub(
  1842.     IRpcStubBuffer *This,
  1843.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1844.     PRPC_MESSAGE _pRpcMessage,
  1845.     DWORD *_pdwStubPhase);
  1846. HRESULT STDMETHODCALLTYPE IShellLinkW_SetDescription_Proxy( 
  1847.     IShellLinkW * This,
  1848.     /* [in] */ LPCWSTR pszName);
  1849. void __RPC_STUB IShellLinkW_SetDescription_Stub(
  1850.     IRpcStubBuffer *This,
  1851.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1852.     PRPC_MESSAGE _pRpcMessage,
  1853.     DWORD *_pdwStubPhase);
  1854. HRESULT STDMETHODCALLTYPE IShellLinkW_GetWorkingDirectory_Proxy( 
  1855.     IShellLinkW * This,
  1856.     /* [size_is][out] */ LPWSTR pszDir,
  1857.     int cch);
  1858. void __RPC_STUB IShellLinkW_GetWorkingDirectory_Stub(
  1859.     IRpcStubBuffer *This,
  1860.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1861.     PRPC_MESSAGE _pRpcMessage,
  1862.     DWORD *_pdwStubPhase);
  1863. HRESULT STDMETHODCALLTYPE IShellLinkW_SetWorkingDirectory_Proxy( 
  1864.     IShellLinkW * This,
  1865.     /* [in] */ LPCWSTR pszDir);
  1866. void __RPC_STUB IShellLinkW_SetWorkingDirectory_Stub(
  1867.     IRpcStubBuffer *This,
  1868.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1869.     PRPC_MESSAGE _pRpcMessage,
  1870.     DWORD *_pdwStubPhase);
  1871. HRESULT STDMETHODCALLTYPE IShellLinkW_GetArguments_Proxy( 
  1872.     IShellLinkW * This,
  1873.     /* [size_is][out] */ LPWSTR pszArgs,
  1874.     int cch);
  1875. void __RPC_STUB IShellLinkW_GetArguments_Stub(
  1876.     IRpcStubBuffer *This,
  1877.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1878.     PRPC_MESSAGE _pRpcMessage,
  1879.     DWORD *_pdwStubPhase);
  1880. HRESULT STDMETHODCALLTYPE IShellLinkW_SetArguments_Proxy( 
  1881.     IShellLinkW * This,
  1882.     /* [in] */ LPCWSTR pszArgs);
  1883. void __RPC_STUB IShellLinkW_SetArguments_Stub(
  1884.     IRpcStubBuffer *This,
  1885.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1886.     PRPC_MESSAGE _pRpcMessage,
  1887.     DWORD *_pdwStubPhase);
  1888. HRESULT STDMETHODCALLTYPE IShellLinkW_GetHotkey_Proxy( 
  1889.     IShellLinkW * This,
  1890.     /* [out] */ WORD *pwHotkey);
  1891. void __RPC_STUB IShellLinkW_GetHotkey_Stub(
  1892.     IRpcStubBuffer *This,
  1893.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1894.     PRPC_MESSAGE _pRpcMessage,
  1895.     DWORD *_pdwStubPhase);
  1896. HRESULT STDMETHODCALLTYPE IShellLinkW_SetHotkey_Proxy( 
  1897.     IShellLinkW * This,
  1898.     /* [in] */ WORD wHotkey);
  1899. void __RPC_STUB IShellLinkW_SetHotkey_Stub(
  1900.     IRpcStubBuffer *This,
  1901.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1902.     PRPC_MESSAGE _pRpcMessage,
  1903.     DWORD *_pdwStubPhase);
  1904. HRESULT STDMETHODCALLTYPE IShellLinkW_GetShowCmd_Proxy( 
  1905.     IShellLinkW * This,
  1906.     /* [out] */ int *piShowCmd);
  1907. void __RPC_STUB IShellLinkW_GetShowCmd_Stub(
  1908.     IRpcStubBuffer *This,
  1909.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1910.     PRPC_MESSAGE _pRpcMessage,
  1911.     DWORD *_pdwStubPhase);
  1912. HRESULT STDMETHODCALLTYPE IShellLinkW_SetShowCmd_Proxy( 
  1913.     IShellLinkW * This,
  1914.     /* [in] */ int iShowCmd);
  1915. void __RPC_STUB IShellLinkW_SetShowCmd_Stub(
  1916.     IRpcStubBuffer *This,
  1917.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1918.     PRPC_MESSAGE _pRpcMessage,
  1919.     DWORD *_pdwStubPhase);
  1920. HRESULT STDMETHODCALLTYPE IShellLinkW_GetIconLocation_Proxy( 
  1921.     IShellLinkW * This,
  1922.     /* [size_is][out] */ LPWSTR pszIconPath,
  1923.     /* [in] */ int cch,
  1924.     /* [out] */ int *piIcon);
  1925. void __RPC_STUB IShellLinkW_GetIconLocation_Stub(
  1926.     IRpcStubBuffer *This,
  1927.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1928.     PRPC_MESSAGE _pRpcMessage,
  1929.     DWORD *_pdwStubPhase);
  1930. HRESULT STDMETHODCALLTYPE IShellLinkW_SetIconLocation_Proxy( 
  1931.     IShellLinkW * This,
  1932.     /* [in] */ LPCWSTR pszIconPath,
  1933.     /* [in] */ int iIcon);
  1934. void __RPC_STUB IShellLinkW_SetIconLocation_Stub(
  1935.     IRpcStubBuffer *This,
  1936.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1937.     PRPC_MESSAGE _pRpcMessage,
  1938.     DWORD *_pdwStubPhase);
  1939. HRESULT STDMETHODCALLTYPE IShellLinkW_SetRelativePath_Proxy( 
  1940.     IShellLinkW * This,
  1941.     /* [in] */ LPCWSTR pszPathRel,
  1942.     /* [in] */ DWORD dwReserved);
  1943. void __RPC_STUB IShellLinkW_SetRelativePath_Stub(
  1944.     IRpcStubBuffer *This,
  1945.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1946.     PRPC_MESSAGE _pRpcMessage,
  1947.     DWORD *_pdwStubPhase);
  1948. HRESULT STDMETHODCALLTYPE IShellLinkW_Resolve_Proxy( 
  1949.     IShellLinkW * This,
  1950.     /* [in] */ HWND hwnd,
  1951.     /* [in] */ DWORD fFlags);
  1952. void __RPC_STUB IShellLinkW_Resolve_Stub(
  1953.     IRpcStubBuffer *This,
  1954.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1955.     PRPC_MESSAGE _pRpcMessage,
  1956.     DWORD *_pdwStubPhase);
  1957. HRESULT STDMETHODCALLTYPE IShellLinkW_SetPath_Proxy( 
  1958.     IShellLinkW * This,
  1959.     /* [in] */ LPCWSTR pszFile);
  1960. void __RPC_STUB IShellLinkW_SetPath_Stub(
  1961.     IRpcStubBuffer *This,
  1962.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1963.     PRPC_MESSAGE _pRpcMessage,
  1964.     DWORD *_pdwStubPhase);
  1965. #endif  /* __IShellLinkW_INTERFACE_DEFINED__ */
  1966. #ifndef __IActionProgressDialog_INTERFACE_DEFINED__
  1967. #define __IActionProgressDialog_INTERFACE_DEFINED__
  1968. /* interface IActionProgressDialog */
  1969. /* [unique][helpstring][uuid][object] */ 
  1970. /* [v1_enum] */ 
  1971. enum __MIDL_IActionProgressDialog_0001
  1972.     { SPINITF_NORMAL = 0,
  1973. SPINITF_MODAL = 0x1,
  1974. SPINITF_NOMINIMIZE = 0x8
  1975.     } ;
  1976. typedef DWORD SPINITF;
  1977. EXTERN_C const IID IID_IActionProgressDialog;
  1978. #if defined(__cplusplus) && !defined(CINTERFACE)
  1979.     
  1980.     MIDL_INTERFACE("49ff1172-eadc-446d-9285-156453a6431c")
  1981.     IActionProgressDialog : public IUnknown
  1982.     {
  1983.     public:
  1984.         virtual HRESULT STDMETHODCALLTYPE Initialize( 
  1985.             /* [in] */ SPINITF flags,
  1986.             /* [string][in] */ LPCWSTR pszTitle,
  1987.             /* [string][in] */ LPCWSTR pszCancel) = 0;
  1988.         
  1989.         virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0;
  1990.         
  1991.     };
  1992.     
  1993. #else  /* C style interface */
  1994.     typedef struct IActionProgressDialogVtbl
  1995.     {
  1996.         BEGIN_INTERFACE
  1997.         
  1998.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  1999.             IActionProgressDialog * This,
  2000.             /* [in] */ REFIID riid,
  2001.             /* [iid_is][out] */ void **ppvObject);
  2002.         
  2003.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2004.             IActionProgressDialog * This);
  2005.         
  2006.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2007.             IActionProgressDialog * This);
  2008.         
  2009.         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
  2010.             IActionProgressDialog * This,
  2011.             /* [in] */ SPINITF flags,
  2012.             /* [string][in] */ LPCWSTR pszTitle,
  2013.             /* [string][in] */ LPCWSTR pszCancel);
  2014.         
  2015.         HRESULT ( STDMETHODCALLTYPE *Stop )( 
  2016.             IActionProgressDialog * This);
  2017.         
  2018.         END_INTERFACE
  2019.     } IActionProgressDialogVtbl;
  2020.     interface IActionProgressDialog
  2021.     {
  2022.         CONST_VTBL struct IActionProgressDialogVtbl *lpVtbl;
  2023.     };
  2024.     
  2025. #ifdef COBJMACROS
  2026. #define IActionProgressDialog_QueryInterface(This,riid,ppvObject)
  2027.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2028. #define IActionProgressDialog_AddRef(This)
  2029.     (This)->lpVtbl -> AddRef(This)
  2030. #define IActionProgressDialog_Release(This)
  2031.     (This)->lpVtbl -> Release(This)
  2032. #define IActionProgressDialog_Initialize(This,flags,pszTitle,pszCancel)
  2033.     (This)->lpVtbl -> Initialize(This,flags,pszTitle,pszCancel)
  2034. #define IActionProgressDialog_Stop(This)
  2035.     (This)->lpVtbl -> Stop(This)
  2036. #endif /* COBJMACROS */
  2037. #endif  /* C style interface */
  2038. HRESULT STDMETHODCALLTYPE IActionProgressDialog_Initialize_Proxy( 
  2039.     IActionProgressDialog * This,
  2040.     /* [in] */ SPINITF flags,
  2041.     /* [string][in] */ LPCWSTR pszTitle,
  2042.     /* [string][in] */ LPCWSTR pszCancel);
  2043. void __RPC_STUB IActionProgressDialog_Initialize_Stub(
  2044.     IRpcStubBuffer *This,
  2045.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2046.     PRPC_MESSAGE _pRpcMessage,
  2047.     DWORD *_pdwStubPhase);
  2048. HRESULT STDMETHODCALLTYPE IActionProgressDialog_Stop_Proxy( 
  2049.     IActionProgressDialog * This);
  2050. void __RPC_STUB IActionProgressDialog_Stop_Stub(
  2051.     IRpcStubBuffer *This,
  2052.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2053.     PRPC_MESSAGE _pRpcMessage,
  2054.     DWORD *_pdwStubPhase);
  2055. #endif  /* __IActionProgressDialog_INTERFACE_DEFINED__ */
  2056. #ifndef __IHWEventHandler_INTERFACE_DEFINED__
  2057. #define __IHWEventHandler_INTERFACE_DEFINED__
  2058. /* interface IHWEventHandler */
  2059. /* [unique][helpstring][uuid][object] */ 
  2060. EXTERN_C const IID IID_IHWEventHandler;
  2061. #if defined(__cplusplus) && !defined(CINTERFACE)
  2062.     
  2063.     MIDL_INTERFACE("C1FB73D0-EC3A-4ba2-B512-8CDB9187B6D1")
  2064.     IHWEventHandler : public IUnknown
  2065.     {
  2066.     public:
  2067.         virtual HRESULT STDMETHODCALLTYPE Initialize( 
  2068.             /* [string][in] */ LPCWSTR pszParams) = 0;
  2069.         
  2070.         virtual HRESULT STDMETHODCALLTYPE HandleEvent( 
  2071.             /* [string][in] */ LPCWSTR pszDeviceID,
  2072.             /* [string][in] */ LPCWSTR pszAltDeviceID,
  2073.             /* [string][in] */ LPCWSTR pszEventType) = 0;
  2074.         
  2075.         virtual HRESULT STDMETHODCALLTYPE HandleEventWithContent( 
  2076.             /* [string][in] */ LPCWSTR pszDeviceID,
  2077.             /* [string][in] */ LPCWSTR pszAltDeviceID,
  2078.             /* [string][in] */ LPCWSTR pszEventType,
  2079.             /* [string][in] */ LPCWSTR pszContentTypeHandler,
  2080.             /* [in] */ IDataObject *pdataobject) = 0;
  2081.         
  2082.     };
  2083.     
  2084. #else  /* C style interface */
  2085.     typedef struct IHWEventHandlerVtbl
  2086.     {
  2087.         BEGIN_INTERFACE
  2088.         
  2089.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2090.             IHWEventHandler * This,
  2091.             /* [in] */ REFIID riid,
  2092.             /* [iid_is][out] */ void **ppvObject);
  2093.         
  2094.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2095.             IHWEventHandler * This);
  2096.         
  2097.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2098.             IHWEventHandler * This);
  2099.         
  2100.         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
  2101.             IHWEventHandler * This,
  2102.             /* [string][in] */ LPCWSTR pszParams);
  2103.         
  2104.         HRESULT ( STDMETHODCALLTYPE *HandleEvent )( 
  2105.             IHWEventHandler * This,
  2106.             /* [string][in] */ LPCWSTR pszDeviceID,
  2107.             /* [string][in] */ LPCWSTR pszAltDeviceID,
  2108.             /* [string][in] */ LPCWSTR pszEventType);
  2109.         
  2110.         HRESULT ( STDMETHODCALLTYPE *HandleEventWithContent )( 
  2111.             IHWEventHandler * This,
  2112.             /* [string][in] */ LPCWSTR pszDeviceID,
  2113.             /* [string][in] */ LPCWSTR pszAltDeviceID,
  2114.             /* [string][in] */ LPCWSTR pszEventType,
  2115.             /* [string][in] */ LPCWSTR pszContentTypeHandler,
  2116.             /* [in] */ IDataObject *pdataobject);
  2117.         
  2118.         END_INTERFACE
  2119.     } IHWEventHandlerVtbl;
  2120.     interface IHWEventHandler
  2121.     {
  2122.         CONST_VTBL struct IHWEventHandlerVtbl *lpVtbl;
  2123.     };
  2124.     
  2125. #ifdef COBJMACROS
  2126. #define IHWEventHandler_QueryInterface(This,riid,ppvObject)
  2127.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2128. #define IHWEventHandler_AddRef(This)
  2129.     (This)->lpVtbl -> AddRef(This)
  2130. #define IHWEventHandler_Release(This)
  2131.     (This)->lpVtbl -> Release(This)
  2132. #define IHWEventHandler_Initialize(This,pszParams)
  2133.     (This)->lpVtbl -> Initialize(This,pszParams)
  2134. #define IHWEventHandler_HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType)
  2135.     (This)->lpVtbl -> HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType)
  2136. #define IHWEventHandler_HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject)
  2137.     (This)->lpVtbl -> HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject)
  2138. #endif /* COBJMACROS */
  2139. #endif  /* C style interface */
  2140. HRESULT STDMETHODCALLTYPE IHWEventHandler_Initialize_Proxy( 
  2141.     IHWEventHandler * This,
  2142.     /* [string][in] */ LPCWSTR pszParams);
  2143. void __RPC_STUB IHWEventHandler_Initialize_Stub(
  2144.     IRpcStubBuffer *This,
  2145.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2146.     PRPC_MESSAGE _pRpcMessage,
  2147.     DWORD *_pdwStubPhase);
  2148. HRESULT STDMETHODCALLTYPE IHWEventHandler_HandleEvent_Proxy( 
  2149.     IHWEventHandler * This,
  2150.     /* [string][in] */ LPCWSTR pszDeviceID,
  2151.     /* [string][in] */ LPCWSTR pszAltDeviceID,
  2152.     /* [string][in] */ LPCWSTR pszEventType);
  2153. void __RPC_STUB IHWEventHandler_HandleEvent_Stub(
  2154.     IRpcStubBuffer *This,
  2155.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2156.     PRPC_MESSAGE _pRpcMessage,
  2157.     DWORD *_pdwStubPhase);
  2158. HRESULT STDMETHODCALLTYPE IHWEventHandler_HandleEventWithContent_Proxy( 
  2159.     IHWEventHandler * This,
  2160.     /* [string][in] */ LPCWSTR pszDeviceID,
  2161.     /* [string][in] */ LPCWSTR pszAltDeviceID,
  2162.     /* [string][in] */ LPCWSTR pszEventType,
  2163.     /* [string][in] */ LPCWSTR pszContentTypeHandler,
  2164.     /* [in] */ IDataObject *pdataobject);
  2165. void __RPC_STUB IHWEventHandler_HandleEventWithContent_Stub(
  2166.     IRpcStubBuffer *This,
  2167.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2168.     PRPC_MESSAGE _pRpcMessage,
  2169.     DWORD *_pdwStubPhase);
  2170. #endif  /* __IHWEventHandler_INTERFACE_DEFINED__ */
  2171. /* interface __MIDL_itf_shobjidl_0211 */
  2172. /* [local] */ 
  2173. #define ARCONTENT_AUTORUNINF         0x00000002
  2174. #define ARCONTENT_AUDIOCD         0x00000004
  2175. #define ARCONTENT_DVDMOVIE        0x00000008
  2176. #define ARCONTENT_BLANKCD         0x00000010
  2177. #define ARCONTENT_BLANKDVD        0x00000020
  2178. #define ARCONTENT_UNKNOWNCONTENT     0x00000040
  2179. #define ARCONTENT_AUTOPLAYPIX     0x00000080
  2180. #define ARCONTENT_AUTOPLAYMUSIC      0x00000100
  2181. #define ARCONTENT_AUTOPLAYVIDEO      0x00000200
  2182. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0211_v0_0_c_ifspec;
  2183. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0211_v0_0_s_ifspec;
  2184. #ifndef __IQueryCancelAutoPlay_INTERFACE_DEFINED__
  2185. #define __IQueryCancelAutoPlay_INTERFACE_DEFINED__
  2186. /* interface IQueryCancelAutoPlay */
  2187. /* [unique][helpstring][uuid][object] */ 
  2188. EXTERN_C const IID IID_IQueryCancelAutoPlay;
  2189. #if defined(__cplusplus) && !defined(CINTERFACE)
  2190.     
  2191.     MIDL_INTERFACE("DDEFE873-6997-4e68-BE26-39B633ADBE12")
  2192.     IQueryCancelAutoPlay : public IUnknown
  2193.     {
  2194.     public:
  2195.         virtual HRESULT STDMETHODCALLTYPE AllowAutoPlay( 
  2196.             /* [string][in] */ LPCWSTR pszPath,
  2197.             /* [in] */ DWORD dwContentType,
  2198.             /* [string][in] */ LPCWSTR pszLabel,
  2199.             /* [in] */ DWORD dwSerialNumber) = 0;
  2200.         
  2201.     };
  2202.     
  2203. #else  /* C style interface */
  2204.     typedef struct IQueryCancelAutoPlayVtbl
  2205.     {
  2206.         BEGIN_INTERFACE
  2207.         
  2208.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2209.             IQueryCancelAutoPlay * This,
  2210.             /* [in] */ REFIID riid,
  2211.             /* [iid_is][out] */ void **ppvObject);
  2212.         
  2213.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2214.             IQueryCancelAutoPlay * This);
  2215.         
  2216.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2217.             IQueryCancelAutoPlay * This);
  2218.         
  2219.         HRESULT ( STDMETHODCALLTYPE *AllowAutoPlay )( 
  2220.             IQueryCancelAutoPlay * This,
  2221.             /* [string][in] */ LPCWSTR pszPath,
  2222.             /* [in] */ DWORD dwContentType,
  2223.             /* [string][in] */ LPCWSTR pszLabel,
  2224.             /* [in] */ DWORD dwSerialNumber);
  2225.         
  2226.         END_INTERFACE
  2227.     } IQueryCancelAutoPlayVtbl;
  2228.     interface IQueryCancelAutoPlay
  2229.     {
  2230.         CONST_VTBL struct IQueryCancelAutoPlayVtbl *lpVtbl;
  2231.     };
  2232.     
  2233. #ifdef COBJMACROS
  2234. #define IQueryCancelAutoPlay_QueryInterface(This,riid,ppvObject)
  2235.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2236. #define IQueryCancelAutoPlay_AddRef(This)
  2237.     (This)->lpVtbl -> AddRef(This)
  2238. #define IQueryCancelAutoPlay_Release(This)
  2239.     (This)->lpVtbl -> Release(This)
  2240. #define IQueryCancelAutoPlay_AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber)
  2241.     (This)->lpVtbl -> AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber)
  2242. #endif /* COBJMACROS */
  2243. #endif  /* C style interface */
  2244. HRESULT STDMETHODCALLTYPE IQueryCancelAutoPlay_AllowAutoPlay_Proxy( 
  2245.     IQueryCancelAutoPlay * This,
  2246.     /* [string][in] */ LPCWSTR pszPath,
  2247.     /* [in] */ DWORD dwContentType,
  2248.     /* [string][in] */ LPCWSTR pszLabel,
  2249.     /* [in] */ DWORD dwSerialNumber);
  2250. void __RPC_STUB IQueryCancelAutoPlay_AllowAutoPlay_Stub(
  2251.     IRpcStubBuffer *This,
  2252.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2253.     PRPC_MESSAGE _pRpcMessage,
  2254.     DWORD *_pdwStubPhase);
  2255. #endif  /* __IQueryCancelAutoPlay_INTERFACE_DEFINED__ */
  2256. #ifndef __IActionProgress_INTERFACE_DEFINED__
  2257. #define __IActionProgress_INTERFACE_DEFINED__
  2258. /* interface IActionProgress */
  2259. /* [unique][helpstring][uuid][object] */ 
  2260. /* [v1_enum] */ 
  2261. enum __MIDL_IActionProgress_0001
  2262.     { SPBEGINF_NORMAL = 0,
  2263. SPBEGINF_AUTOTIME = 0x2,
  2264. SPBEGINF_NOPROGRESSBAR = 0x10,
  2265. SPBEGINF_MARQUEEPROGRESS = 0x20
  2266.     } ;
  2267. typedef DWORD SPBEGINF;
  2268. typedef /* [v1_enum] */ 
  2269. enum _SPACTION
  2270.     { SPACTION_NONE = 0,
  2271. SPACTION_MOVING = SPACTION_NONE + 1,
  2272. SPACTION_COPYING = SPACTION_MOVING + 1,
  2273. SPACTION_RECYCLING = SPACTION_COPYING + 1,
  2274. SPACTION_APPLYINGATTRIBS = SPACTION_RECYCLING + 1,
  2275. SPACTION_DOWNLOADING = SPACTION_APPLYINGATTRIBS + 1,
  2276. SPACTION_SEARCHING_INTERNET = SPACTION_DOWNLOADING + 1,
  2277. SPACTION_CALCULATING = SPACTION_SEARCHING_INTERNET + 1,
  2278. SPACTION_UPLOADING = SPACTION_CALCULATING + 1,
  2279. SPACTION_SEARCHING_FILES = SPACTION_UPLOADING + 1
  2280.     }  SPACTION;
  2281. typedef /* [v1_enum] */ 
  2282. enum _SPTEXT
  2283.     { SPTEXT_ACTIONDESCRIPTION = 1,
  2284. SPTEXT_ACTIONDETAIL = SPTEXT_ACTIONDESCRIPTION + 1
  2285.     }  SPTEXT;
  2286. EXTERN_C const IID IID_IActionProgress;
  2287. #if defined(__cplusplus) && !defined(CINTERFACE)
  2288.     
  2289.     MIDL_INTERFACE("49ff1173-eadc-446d-9285-156453a6431c")
  2290.     IActionProgress : public IUnknown
  2291.     {
  2292.     public:
  2293.         virtual HRESULT STDMETHODCALLTYPE Begin( 
  2294.             /* [in] */ SPACTION action,
  2295.             /* [in] */ SPBEGINF flags) = 0;
  2296.         
  2297.         virtual HRESULT STDMETHODCALLTYPE UpdateProgress( 
  2298.             /* [in] */ ULONGLONG ulCompleted,
  2299.             /* [in] */ ULONGLONG ulTotal) = 0;
  2300.         
  2301.         virtual HRESULT STDMETHODCALLTYPE UpdateText( 
  2302.             /* [in] */ SPTEXT sptext,
  2303.             /* [string][in] */ LPCWSTR pszText,
  2304.             /* [in] */ BOOL fMayCompact) = 0;
  2305.         
  2306.         virtual HRESULT STDMETHODCALLTYPE QueryCancel( 
  2307.             /* [out] */ BOOL *pfCancelled) = 0;
  2308.         
  2309.         virtual HRESULT STDMETHODCALLTYPE ResetCancel( void) = 0;
  2310.         
  2311.         virtual HRESULT STDMETHODCALLTYPE End( void) = 0;
  2312.         
  2313.     };
  2314.     
  2315. #else  /* C style interface */
  2316.     typedef struct IActionProgressVtbl
  2317.     {
  2318.         BEGIN_INTERFACE
  2319.         
  2320.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2321.             IActionProgress * This,
  2322.             /* [in] */ REFIID riid,
  2323.             /* [iid_is][out] */ void **ppvObject);
  2324.         
  2325.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2326.             IActionProgress * This);
  2327.         
  2328.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2329.             IActionProgress * This);
  2330.         
  2331.         HRESULT ( STDMETHODCALLTYPE *Begin )( 
  2332.             IActionProgress * This,
  2333.             /* [in] */ SPACTION action,
  2334.             /* [in] */ SPBEGINF flags);
  2335.         
  2336.         HRESULT ( STDMETHODCALLTYPE *UpdateProgress )( 
  2337.             IActionProgress * This,
  2338.             /* [in] */ ULONGLONG ulCompleted,
  2339.             /* [in] */ ULONGLONG ulTotal);
  2340.         
  2341.         HRESULT ( STDMETHODCALLTYPE *UpdateText )( 
  2342.             IActionProgress * This,
  2343.             /* [in] */ SPTEXT sptext,
  2344.             /* [string][in] */ LPCWSTR pszText,
  2345.             /* [in] */ BOOL fMayCompact);
  2346.         
  2347.         HRESULT ( STDMETHODCALLTYPE *QueryCancel )( 
  2348.             IActionProgress * This,
  2349.             /* [out] */ BOOL *pfCancelled);
  2350.         
  2351.         HRESULT ( STDMETHODCALLTYPE *ResetCancel )( 
  2352.             IActionProgress * This);
  2353.         
  2354.         HRESULT ( STDMETHODCALLTYPE *End )( 
  2355.             IActionProgress * This);
  2356.         
  2357.         END_INTERFACE
  2358.     } IActionProgressVtbl;
  2359.     interface IActionProgress
  2360.     {
  2361.         CONST_VTBL struct IActionProgressVtbl *lpVtbl;
  2362.     };
  2363.     
  2364. #ifdef COBJMACROS
  2365. #define IActionProgress_QueryInterface(This,riid,ppvObject)
  2366.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2367. #define IActionProgress_AddRef(This)
  2368.     (This)->lpVtbl -> AddRef(This)
  2369. #define IActionProgress_Release(This)
  2370.     (This)->lpVtbl -> Release(This)
  2371. #define IActionProgress_Begin(This,action,flags)
  2372.     (This)->lpVtbl -> Begin(This,action,flags)
  2373. #define IActionProgress_UpdateProgress(This,ulCompleted,ulTotal)
  2374.     (This)->lpVtbl -> UpdateProgress(This,ulCompleted,ulTotal)
  2375. #define IActionProgress_UpdateText(This,sptext,pszText,fMayCompact)
  2376.     (This)->lpVtbl -> UpdateText(This,sptext,pszText,fMayCompact)
  2377. #define IActionProgress_QueryCancel(This,pfCancelled)
  2378.     (This)->lpVtbl -> QueryCancel(This,pfCancelled)
  2379. #define IActionProgress_ResetCancel(This)
  2380.     (This)->lpVtbl -> ResetCancel(This)
  2381. #define IActionProgress_End(This)
  2382.     (This)->lpVtbl -> End(This)
  2383. #endif /* COBJMACROS */
  2384. #endif  /* C style interface */
  2385. HRESULT STDMETHODCALLTYPE IActionProgress_Begin_Proxy( 
  2386.     IActionProgress * This,
  2387.     /* [in] */ SPACTION action,
  2388.     /* [in] */ SPBEGINF flags);
  2389. void __RPC_STUB IActionProgress_Begin_Stub(
  2390.     IRpcStubBuffer *This,
  2391.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2392.     PRPC_MESSAGE _pRpcMessage,
  2393.     DWORD *_pdwStubPhase);
  2394. HRESULT STDMETHODCALLTYPE IActionProgress_UpdateProgress_Proxy( 
  2395.     IActionProgress * This,
  2396.     /* [in] */ ULONGLONG ulCompleted,
  2397.     /* [in] */ ULONGLONG ulTotal);
  2398. void __RPC_STUB IActionProgress_UpdateProgress_Stub(
  2399.     IRpcStubBuffer *This,
  2400.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2401.     PRPC_MESSAGE _pRpcMessage,
  2402.     DWORD *_pdwStubPhase);
  2403. HRESULT STDMETHODCALLTYPE IActionProgress_UpdateText_Proxy( 
  2404.     IActionProgress * This,
  2405.     /* [in] */ SPTEXT sptext,
  2406.     /* [string][in] */ LPCWSTR pszText,
  2407.     /* [in] */ BOOL fMayCompact);
  2408. void __RPC_STUB IActionProgress_UpdateText_Stub(
  2409.     IRpcStubBuffer *This,
  2410.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2411.     PRPC_MESSAGE _pRpcMessage,
  2412.     DWORD *_pdwStubPhase);
  2413. HRESULT STDMETHODCALLTYPE IActionProgress_QueryCancel_Proxy( 
  2414.     IActionProgress * This,
  2415.     /* [out] */ BOOL *pfCancelled);
  2416. void __RPC_STUB IActionProgress_QueryCancel_Stub(
  2417.     IRpcStubBuffer *This,
  2418.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2419.     PRPC_MESSAGE _pRpcMessage,
  2420.     DWORD *_pdwStubPhase);
  2421. HRESULT STDMETHODCALLTYPE IActionProgress_ResetCancel_Proxy( 
  2422.     IActionProgress * This);
  2423. void __RPC_STUB IActionProgress_ResetCancel_Stub(
  2424.     IRpcStubBuffer *This,
  2425.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2426.     PRPC_MESSAGE _pRpcMessage,
  2427.     DWORD *_pdwStubPhase);
  2428. HRESULT STDMETHODCALLTYPE IActionProgress_End_Proxy( 
  2429.     IActionProgress * This);
  2430. void __RPC_STUB IActionProgress_End_Stub(
  2431.     IRpcStubBuffer *This,
  2432.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2433.     PRPC_MESSAGE _pRpcMessage,
  2434.     DWORD *_pdwStubPhase);
  2435. #endif  /* __IActionProgress_INTERFACE_DEFINED__ */
  2436. #ifndef __IShellExtInit_INTERFACE_DEFINED__
  2437. #define __IShellExtInit_INTERFACE_DEFINED__
  2438. /* interface IShellExtInit */
  2439. /* [unique][local][object][uuid] */ 
  2440. EXTERN_C const IID IID_IShellExtInit;
  2441. #if defined(__cplusplus) && !defined(CINTERFACE)
  2442.     
  2443.     MIDL_INTERFACE("000214E8-0000-0000-C000-000000000046")
  2444.     IShellExtInit : public IUnknown
  2445.     {
  2446.     public:
  2447.         virtual HRESULT STDMETHODCALLTYPE Initialize( 
  2448.             /* [in] */ LPCITEMIDLIST pidlFolder,
  2449.             /* [in] */ IDataObject *pdtobj,
  2450.             /* [in] */ HKEY hkeyProgID) = 0;
  2451.         
  2452.     };
  2453.     
  2454. #else  /* C style interface */
  2455.     typedef struct IShellExtInitVtbl
  2456.     {
  2457.         BEGIN_INTERFACE
  2458.         
  2459.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2460.             IShellExtInit * This,
  2461.             /* [in] */ REFIID riid,
  2462.             /* [iid_is][out] */ void **ppvObject);
  2463.         
  2464.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2465.             IShellExtInit * This);
  2466.         
  2467.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2468.             IShellExtInit * This);
  2469.         
  2470.         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
  2471.             IShellExtInit * This,
  2472.             /* [in] */ LPCITEMIDLIST pidlFolder,
  2473.             /* [in] */ IDataObject *pdtobj,
  2474.             /* [in] */ HKEY hkeyProgID);
  2475.         
  2476.         END_INTERFACE
  2477.     } IShellExtInitVtbl;
  2478.     interface IShellExtInit
  2479.     {
  2480.         CONST_VTBL struct IShellExtInitVtbl *lpVtbl;
  2481.     };
  2482.     
  2483. #ifdef COBJMACROS
  2484. #define IShellExtInit_QueryInterface(This,riid,ppvObject)
  2485.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2486. #define IShellExtInit_AddRef(This)
  2487.     (This)->lpVtbl -> AddRef(This)
  2488. #define IShellExtInit_Release(This)
  2489.     (This)->lpVtbl -> Release(This)
  2490. #define IShellExtInit_Initialize(This,pidlFolder,pdtobj,hkeyProgID)
  2491.     (This)->lpVtbl -> Initialize(This,pidlFolder,pdtobj,hkeyProgID)
  2492. #endif /* COBJMACROS */
  2493. #endif  /* C style interface */
  2494. HRESULT STDMETHODCALLTYPE IShellExtInit_Initialize_Proxy( 
  2495.     IShellExtInit * This,
  2496.     /* [in] */ LPCITEMIDLIST pidlFolder,
  2497.     /* [in] */ IDataObject *pdtobj,
  2498.     /* [in] */ HKEY hkeyProgID);
  2499. void __RPC_STUB IShellExtInit_Initialize_Stub(
  2500.     IRpcStubBuffer *This,
  2501.     IRpcChannelBuffer *_pRpcChannelBuffer,
  2502.     PRPC_MESSAGE _pRpcMessage,
  2503.     DWORD *_pdwStubPhase);
  2504. #endif  /* __IShellExtInit_INTERFACE_DEFINED__ */
  2505. /* interface __MIDL_itf_shobjidl_0214 */
  2506. /* [local] */ 
  2507. typedef IShellExtInit *LPSHELLEXTINIT;
  2508. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0214_v0_0_c_ifspec;
  2509. extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0214_v0_0_s_ifspec;
  2510. #ifndef __IShellPropSheetExt_INTERFACE_DEFINED__
  2511. #define __IShellPropSheetExt_INTERFACE_DEFINED__
  2512. /* interface IShellPropSheetExt */
  2513. /* [unique][local][object][uuid] */ 
  2514. enum __MIDL_IShellPropSheetExt_0001
  2515.     { EXPPS_FILETYPES = 0x1
  2516.     } ;
  2517. typedef UINT EXPPS;
  2518. EXTERN_C const IID IID_IShellPropSheetExt;
  2519. #if defined(__cplusplus) && !defined(CINTERFACE)
  2520.     
  2521.     MIDL_INTERFACE("000214E9-0000-0000-C000-000000000046")
  2522.     IShellPropSheetExt : public IUnknown
  2523.     {
  2524.     public:
  2525.         virtual HRESULT STDMETHODCALLTYPE AddPages( 
  2526.             /* [in] */ LPFNSVADDPROPSHEETPAGE pfnAddPage,
  2527.             /* [in] */ LPARAM lParam) = 0;
  2528.         
  2529.         virtual HRESULT STDMETHODCALLTYPE ReplacePage( 
  2530.             /* [in] */ EXPPS uPageID,
  2531.             /* [in] */ LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
  2532.             /* [in] */ LPARAM lParam) = 0;
  2533.         
  2534.     };
  2535.     
  2536. #else  /* C style interface */
  2537.     typedef struct IShellPropSheetExtVtbl
  2538.     {
  2539.         BEGIN_INTERFACE
  2540.         
  2541.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  2542.             IShellPropSheetExt * This,
  2543.             /* [in] */ REFIID riid,
  2544.             /* [iid_is][out] */ void **ppvObject);
  2545.         
  2546.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  2547.             IShellPropSheetExt * This);
  2548.         
  2549.         ULONG ( STDMETHODCALLTYPE *Release )( 
  2550.             IShellPropSheetExt * This);
  2551.         
  2552.         HRESULT ( STDMETHODCALLTYPE *AddPages )( 
  2553.             IShellPropSheetExt * This,
  2554.             /* [in] */ LPFNSVADDPROPSHEETPAGE pfnAddPage,
  2555.             /* [in] */ LPARAM lParam);
  2556.         
  2557.         HRESULT ( STDMETHODCALLTYPE *ReplacePage )( 
  2558.             IShellPropSheetExt * This,
  2559.             /* [in] */ EXPPS uPageID,