vlc_windows_interfaces.h

Go to the documentation of this file.
00001 /*****************************************************************************
00002  * vistaext.h : "Vista file associations support"
00003  ****************************************************************************
00004  * Copyright (C) 2009 the VideoLAN team
00005  * $Id: 36bfd4a64b1ec9b9b5da0e21de6d93f53f2eefc3 $
00006  *
00007  * Authors: Geoffroy Couprie <geal@videolan.org>
00008  *
00009  * This program is free software; you can redistribute it and/or modify
00010  * it under the terms of the GNU General Public License as published by
00011  * the Free Software Foundation; either version 2 of the License, or
00012  * (at your option) any later version.
00013  *
00014  * This program is distributed in the hope that it will be useful,
00015  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017  * GNU General Public License for more details.
00018  *
00019  * You should have received a copy of the GNU General Public License
00020  * along with this program; if not, write to the Free Software
00021  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
00022  *****************************************************************************/
00023 
00024 #ifndef VISTAASSOC_H
00025 #define VISTAASSOC_H
00026 
00027 #include <commctrl.h>
00028 
00029 #define CLSCTX_INPROC_SERVER 1
00030 typedef GUID IID;
00031 #define REFIID const IID* const
00032 
00033 const GUID clsid_IApplication2 = { 0x1968106d,0xf3b5,0x44cf,{0x89,0x0e,0x11,0x6f,0xcb,0x9e,0xce,0xf1}};
00034 const GUID IID_IApplicationAssociationRegistrationUI = {0x1f76a169,0xf994,0x40ac, {0x8f,0xc8,0x09,0x59,0xe8,0x87,0x47,0x10}};
00035 
00036 const GUID clsid_ITaskbarList ={ 0x56FDF344,0xFD6D,0x11d0,{0x95,0x8A,0x00,0x60,0x97,0xC9,0xA0,0x90}};
00037 const GUID IID_ITaskbarList3 = { 0xea1afb91,0x9e28,0x4b86,{0x90,0xe9,0x9e,0x9f,0x8a,0x5e,0xef,0xaf}};
00038 #ifndef __IUnknown_INTERFACE_DEFINED__
00039 #undef IUnknown
00040 typedef struct _IUnknown IUnknown;
00041 #endif
00042 typedef struct _IApplicationAssociationRegistrationUI IApplicationAssociationRegistrationUI;
00043 typedef struct _ITaskbarList3 ITaskbarList3;
00044 
00045 typedef struct IUnknown_vt
00046 {
00047     long (STDCALL *QueryInterface)(IUnknown *This, const GUID *riid,
00048                                    void **ppvObject);
00049     long (STDCALL *AddRef)(IUnknown *This);
00050     long (STDCALL *Release)(IUnknown *This);
00051 
00052 } IUnknown_vt;
00053 struct _IUnknown { IUnknown_vt* vt; };
00054 #ifndef __IUnknown_INTERFACE_DEFINED__
00055 typedef IUnknown *LPUNKNOWN;
00056 #endif
00057 typedef struct IApplicationAssociationRegistrationUI_vt
00058 {
00059     /* IUnknown methods */
00060     long (STDCALL *QueryInterface)(IUnknown *This, const GUID *riid,
00061                                    void **ppvObject);
00062     long (STDCALL *AddRef)(IUnknown *This);
00063     long (STDCALL *Release)(IUnknown *This);
00064     long (STDCALL *LaunchAdvancedAssociationUI)(IApplicationAssociationRegistrationUI *This, LPCWSTR app);
00065 } IApplicationAssociationRegistrationUI_vt;
00066 struct _IApplicationAssociationRegistrationUI { IApplicationAssociationRegistrationUI_vt* vt; };
00067 typedef IApplicationAssociationRegistrationUI *LPAPPASSOCREGUI, *PAPPASSOCREGUI;
00068 
00069 typedef enum TBPFLAG
00070 {   
00071     TBPF_NOPROGRESS = 0,
00072     TBPF_INDETERMINATE  = 0x1,
00073     TBPF_NORMAL = 0x2,
00074     TBPF_ERROR  = 0x4,
00075     TBPF_PAUSED = 0x8
00076 }   TBPFLAG;
00077 
00078 typedef enum TBATFLAG
00079 {   
00080     TBATF_USEMDITHUMBNAIL   = 0x1,
00081     TBATF_USEMDILIVEPREVIEW = 0x2
00082 }   TBATFLAG;
00083 
00084 typedef struct tagTHUMBBUTTON
00085     {
00086     DWORD dwMask;
00087     UINT iId;
00088     UINT iBitmap;
00089     HICON hIcon;
00090 //    WCHAR pszTip[ 260 ];
00091     wchar_t pszTip[ 260 ];
00092     DWORD dwFlags;
00093     }   THUMBBUTTON;
00094 
00095 typedef struct tagTHUMBBUTTON *LPTHUMBBUTTON;
00096 
00097 // THUMBBUTTON flags
00098 #define THBF_ENABLED             0x0000
00099 #define THBF_DISABLED            0x0001
00100 #define THBF_DISMISSONCLICK      0x0002
00101 #define THBF_NOBACKGROUND        0x0004
00102 #define THBF_HIDDEN              0x0008
00103 // THUMBBUTTON mask
00104 #define THB_BITMAP          0x0001
00105 #define THB_ICON            0x0002
00106 #define THB_TOOLTIP         0x0004
00107 #define THB_FLAGS           0x0008
00108 #define THBN_CLICKED        0x1800
00109 
00110 typedef struct ITaskbarList3Vtbl
00111 {
00112     
00113     long ( STDCALL *QueryInterface )(ITaskbarList3 * This, REFIID riid, void **ppvObject);
00114     
00115     long ( STDCALL *AddRef )( ITaskbarList3 * This);
00116     
00117     long ( STDCALL *Release )( ITaskbarList3 * This);
00118     
00119     long ( STDCALL *HrInit )( ITaskbarList3 * This);
00120     
00121     long ( STDCALL *AddTab )( ITaskbarList3 * This, HWND hwnd);
00122     
00123     long ( STDCALL *DeleteTab )( ITaskbarList3 * This, HWND hwnd);
00124     
00125     long ( STDCALL *ActivateTab )( ITaskbarList3 * This, HWND hwnd);
00126     
00127     long ( STDCALL *SetActiveAlt )( ITaskbarList3 * This, HWND hwnd);
00128     
00129     long ( STDCALL *MarkFullscreenWindow )( ITaskbarList3 * This, HWND hwnd,
00130         BOOL fFullscreen);
00131     
00132     long ( STDCALL *SetProgressValue )( ITaskbarList3 * This, HWND hwnd,
00133         ULONGLONG ullCompleted, ULONGLONG ullTotal);
00134     
00135     long ( STDCALL *SetProgressState )( ITaskbarList3 * This, HWND hwnd,
00136         TBPFLAG tbpFlags);
00137     
00138     long ( STDCALL *RegisterTab )(  ITaskbarList3 * This, HWND hwndTab, HWND hwndMDI);
00139     
00140     long ( STDCALL *UnregisterTab )( ITaskbarList3 * This, HWND hwndTab);
00141     
00142     long ( STDCALL *SetTabOrder )( ITaskbarList3 * This, HWND hwndTab,
00143         HWND hwndInsertBefore);
00144     
00145     long ( STDCALL *SetTabActive )( ITaskbarList3 * This, HWND hwndTab,
00146         HWND hwndMDI, TBATFLAG tbatFlags);
00147     
00148     long ( STDCALL *ThumbBarAddButtons )( ITaskbarList3 * This, HWND hwnd,
00149         UINT cButtons, LPTHUMBBUTTON pButton);
00150     
00151     long ( STDCALL *ThumbBarUpdateButtons )( ITaskbarList3 * This, HWND hwnd,
00152         UINT cButtons, LPTHUMBBUTTON pButton);
00153     
00154     long ( STDCALL *ThumbBarSetImageList )( ITaskbarList3 * This, HWND hwnd,
00155         HIMAGELIST himl);
00156     
00157     long ( STDCALL *SetOverlayIcon )( ITaskbarList3 * This, HWND hwnd,
00158         HICON hIcon, LPCWSTR pszDescription);
00159     
00160     long ( STDCALL *SetThumbnailTooltip )( ITaskbarList3 * This, HWND hwnd,
00161         LPCWSTR pszTip);
00162     
00163     long ( STDCALL *SetThumbnailClip )( ITaskbarList3 * This, HWND hwnd,
00164         RECT *prcClip);
00165 
00166 } ITaskbarList3Vtbl;
00167 
00168 struct _ITaskbarList3 { ITaskbarList3Vtbl* vt; };
00169 typedef ITaskbarList3 *LPTASKBARLIST3, *PTASKBARLIST3;
00170 
00171 
00172 #ifdef __cplusplus
00173 extern "C" {
00174 #endif
00175     HRESULT WINAPI CoCreateInstance(const GUID *,LPUNKNOWN,DWORD,REFIID,PVOID*);
00176     HRESULT WINAPI CoInitialize(PVOID);
00177     void WINAPI CoUninitialize(void);
00178 #ifdef __cplusplus
00179 };
00180 #endif
00181 
00182 #endif //VISTAASSOC_H

Generated on Mon Nov 22 07:55:20 2010 for VLC by  doxygen 1.5.6