123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- /* Copyright (C) 2011 TigerVNC Team. All Rights Reserved.
- *
- * This is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this software; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-
- #ifndef OS_W32TIGER_H
- #define OS_W32TIGER_H
-
- #ifdef WIN32
-
- #include <windows.h>
- #include <wininet.h>
- #include <shlobj.h>
- #include <shlguid.h>
- #include <wininet.h>
-
-
- /* Windows has different names for these */
- #define strcasecmp _stricmp
- #define strncasecmp _strnicmp
-
-
- /* MSLLHOOKSTRUCT structure*/
- #ifndef LLMHF_INJECTED
- #define LLMHF_INJECTED 0x00000001
- #endif
-
-
- /* IActiveDesktop. As of 2011-10-12, MinGW does not define
- IActiveDesktop in any way (see tracker 2877129), while MinGW64 is
- broken: has the headers but not the lib symbols. */
- #ifndef HAVE_ACTIVE_DESKTOP_H
- extern const GUID CLSID_ActiveDesktop;
- extern const GUID IID_IActiveDesktop;
-
- /* IActiveDesktop::AddUrl */
- #define ADDURL_SILENT 0x0001
-
- /* IActiveDesktop::AddDesktopItemWithUI */
- #define DTI_ADDUI_DEFAULT 0x00000000
- #define DTI_ADDUI_DISPSUBWIZARD 0x00000001
- #define DTI_ADDUI_POSITIONITEM 0x00000002
-
- /* IActiveDesktop::ModifyDesktopItem */
- #define COMP_ELEM_TYPE 0x00000001
- #define COMP_ELEM_CHECKED 0x00000002
- #define COMP_ELEM_DIRTY 0x00000004
- #define COMP_ELEM_NOSCROLL 0x00000008
- #define COMP_ELEM_POS_LEFT 0x00000010
- #define COMP_ELEM_POS_TOP 0x00000020
- #define COMP_ELEM_SIZE_WIDTH 0x00000040
- #define COMP_ELEM_SIZE_HEIGHT 0x00000080
- #define COMP_ELEM_POS_ZINDEX 0x00000100
- #define COMP_ELEM_SOURCE 0x00000200
- #define COMP_ELEM_FRIENDLYNAME 0x00000400
- #define COMP_ELEM_SUBSCRIBEDURL 0x00000800
- #define COMP_ELEM_ORIGINAL_CSI 0x00001000
- #define COMP_ELEM_RESTORED_CSI 0x00002000
- #define COMP_ELEM_CURITEMSTATE 0x00004000
- #define COMP_ELEM_ALL 0x00007FFF /* OR-ed all COMP_ELEM_ */
-
- /* IActiveDesktop::GetWallpaper */
- #define AD_GETWP_BMP 0x00000000
- #define AD_GETWP_IMAGE 0x00000001
- #define AD_GETWP_LAST_APPLIED 0x00000002
-
- /* IActiveDesktop::ApplyChanges */
- #define AD_APPLY_SAVE 0x00000001
- #define AD_APPLY_HTMLGEN 0x00000002
- #define AD_APPLY_REFRESH 0x00000004
- #define AD_APPLY_ALL 0x00000007 /* OR-ed three AD_APPLY_ above */
- #define AD_APPLY_FORCE 0x00000008
- #define AD_APPLY_BUFFERED_REFRESH 0x00000010
- #define AD_APPLY_DYNAMICREFRESH 0x00000020
-
- /* Structures for IActiveDesktop */
- typedef struct {
- DWORD dwSize;
- int iLeft;
- int iTop;
- DWORD dwWidth;
- DWORD dwHeight;
- DWORD dwItemState;
- } COMPSTATEINFO, *LPCOMPSTATEINFO;
- typedef const COMPSTATEINFO *LPCCOMPSTATEINFO;
-
- typedef struct {
- DWORD dwSize;
- int iLeft;
- int iTop;
- DWORD dwWidth;
- DWORD dwHeight;
- int izIndex;
- BOOL fCanResize;
- BOOL fCanResizeX;
- BOOL fCanResizeY;
- int iPreferredLeftPercent;
- int iPreferredTopPercent;
- } COMPPOS, *LPCOMPPOS;
- typedef const COMPPOS *LPCCOMPPOS;
-
- typedef struct {
- DWORD dwSize;
- DWORD dwID;
- int iComponentType;
- BOOL fChecked;
- BOOL fDirty;
- BOOL fNoScroll;
- COMPPOS cpPos;
- WCHAR wszFriendlyName[MAX_PATH];
- WCHAR wszSource[INTERNET_MAX_URL_LENGTH];
- WCHAR wszSubscribedURL[INTERNET_MAX_URL_LENGTH];
- DWORD dwCurItemState;
- COMPSTATEINFO csiOriginal;
- COMPSTATEINFO csiRestored;
- } COMPONENT, *LPCOMPONENT;
- typedef const COMPONENT *LPCCOMPONENT;
-
- typedef struct {
- DWORD dwSize;
- BOOL fEnableComponents;
- BOOL fActiveDesktop;
- } COMPONENTSOPT, *LPCOMPONENTSOPT;
- typedef const COMPONENTSOPT *LPCCOMPONENTSOPT;
-
- typedef struct {
- DWORD dwSize;
- DWORD dwStyle;
- } WALLPAPEROPT, *LPWALLPAPEROPT;
- typedef const WALLPAPEROPT *LPCWALLPAPEROPT;
-
- /* WALLPAPEROPT styles */
- #define WPSTYLE_CENTER 0x0
- #define WPSTYLE_TILE 0x1
- #define WPSTYLE_STRETCH 0x2
- #define WPSTYLE_MAX 0x3
-
- /* Those two are defined in Windows 7 and newer, we don't need them now */
- #if 0
- #define WPSTYLE_KEEPASPECT 0x3
- #define WPSTYLE_CROPTOFIT 0x4
- #endif
-
- #define INTERFACE IActiveDesktop
- DECLARE_INTERFACE_(IActiveDesktop, IUnknown)
- {
- STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
- STDMETHOD_(ULONG,AddRef)(THIS) PURE;
- STDMETHOD_(ULONG,Release)(THIS) PURE;
- STDMETHOD(AddDesktopItem)(THIS_ LPCOMPONENT,DWORD) PURE;
- STDMETHOD(AddDesktopItemWithUI)(THIS_ HWND,LPCOMPONENT,DWORD) PURE;
- STDMETHOD(AddUrl)(THIS_ HWND,LPCWSTR,LPCOMPONENT,DWORD) PURE;
- STDMETHOD(ApplyChanges)(THIS_ DWORD) PURE;
- STDMETHOD(GenerateDesktopItemHtml)(THIS_ LPCWSTR,LPCOMPONENT,DWORD) PURE;
- STDMETHOD(GetDesktopItem)(THIS_ int,LPCOMPONENT,DWORD) PURE;
- STDMETHOD(GetDesktopItemByID)(THIS_ DWORD,LPCOMPONENT,DWORD) PURE;
- STDMETHOD(GetDesktopItemBySource)(THIS_ LPCWSTR,LPCOMPONENT,DWORD) PURE;
- STDMETHOD(GetDesktopItemCount)(THIS_ LPINT,DWORD) PURE;
- STDMETHOD(GetDesktopItemOptions)(THIS_ LPCOMPONENTSOPT,DWORD) PURE;
- STDMETHOD(GetPattern)(THIS_ LPWSTR,UINT,DWORD) PURE;
- STDMETHOD(GetWallpaper)(THIS_ LPWSTR,UINT,DWORD) PURE;
- STDMETHOD(GetWallpaperOptions)(THIS_ LPWALLPAPEROPT,DWORD) PURE;
- STDMETHOD(ModifyDesktopItem)(THIS_ LPCCOMPONENT,DWORD) PURE;
- STDMETHOD(RemoveDesktopItem)(THIS_ LPCCOMPONENT,DWORD) PURE;
- STDMETHOD(SetDesktopItemOptions)(THIS_ LPCCOMPONENTSOPT,DWORD) PURE;
- STDMETHOD(SetPattern)(THIS_ LPCWSTR,DWORD) PURE;
- STDMETHOD(SetWallpaper)(THIS_ LPCWSTR,DWORD) PURE;
- STDMETHOD(SetWallpaperOptions)(THIS_ LPCWALLPAPEROPT,DWORD) PURE;
- };
- #undef INTERFACE
- #endif /* HAVE_ACTIVE_DESKTOP_H */
-
- #endif /* WIN32 */
- #endif /* OS_W32TIGER_H */
|