⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 todo.h

📁 ReactOS是一些高手根据Windows XP的内核编写出的类XP。内核实现机理和API函数调用几乎相同。甚至可以兼容XP的程序。喜欢研究系统内核的人可以看一看。
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef __TODO_H
#define __TODO_H

/*
 * Stuff missing in our headers
 */

#define SM_REMOTECONTROL 0x2001

/* FIXME: Ugly hack!!! FIX ASAP! Move to uuid! */
static const GUID IID_HACK_IShellView2 = {0x88E39E80,0x3578,0x11CF,{0xAE,0x69,0x08,0x00,0x2B,0x2E,0x12,0x62}};
#define IID_IShellView2 IID_HACK_IShellView2
static const GUID IID_HACK_IShellView3 = {0xEC39FA88,0xF8AF,0x41CF,{0x84,0x21,0x38,0xBE,0xD2,0x8F,0x46,0x73}};
#define IID_IShellView3 IID_HACK_IShellView2
static const GUID VID_HACK_LargeIcons = {0x0057D0E0, 0x3573, 0x11CF, {0xAE, 0x69, 0x08, 0x00, 0x2B, 0x2E, 0x12, 0x62}};
#define VID_LargeIcons VID_HACK_LargeIcons

static const GUID IID_HACK_IDeskBarClient = {0xEB0FE175, 0x1A3A, 0x11D0, {0x89, 0xB3, 0x00, 0xA0, 0xC9, 0x0A, 0x90, 0xAC}};
#define IID_IDeskBarClient IID_HACK_IDeskBarClient
static const GUID IID_HACK_IDeskBar = {0xEB0FE173, 0x1A3A, 0x11D0, {0x89, 0xB3, 0x00, 0xA0, 0xC9, 0x0A, 0x90, 0xAC}};
#define IID_IDeskBar IID_HACK_IDeskBar

static const GUID IID_HACK_IMenuPopup = {0xD1E7AFEB,0x6A2E,0x11D0,{0x8C,0x78,0x00,0xC0,0x4F,0xD9,0x18,0xB4}};
#define IID_IMenuPopup IID_HACK_IMenuPopup
static const GUID IID_HACK_IBanneredBar = {0x596A9A94,0x013E,0x11D1,{0x8D,0x34,0x00,0xA0,0xC9,0x0F,0x27,0x19}};
#define IID_IBanneredBar IID_HACK_IBanneredBar

static const GUID IID_HACK_IInitializeObject = {0x4622AD16,0xFF23,0x11D0,{0x8D,0x34,0x00,0xA0,0xC9,0x0F,0x27,0x19}};
#define IID_IInitializeObject IID_HACK_IInitializeObject

static const GUID SID_HACK_SMenuPopup = {0xD1E7AFEB,0x6A2E,0x11D0,{0x8C,0x78,0x00,0xC0,0x4F,0xD9,0x18,0xB4}};
#define SID_SMenuPopup SID_HACK_SMenuPopup



#ifdef COBJMACROS
#define IDockingWindow_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
#define IDockingWindow_AddRef(T) (T)->lpVtbl->AddRef(T)
#define IDockingWindow_Release(T) (T)->lpVtbl->Release(T)
#define IDockingWindow_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
#define IDockingWindow_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
#define IDockingWindow_ShowDW(T,a) (T)->lpVtbl->ShowDW(T,a)
#define IDockingWindow_CloseDW(T,a) (T)->lpVtbl->CloseDW(T,a)
#define IDockingWindow_ResizeBorderDW(T,a,b,c) (T)->lpVtbl->ResizeBorderDW(T,a,b,c)
#endif

#define INTERFACE IDeskBarClient
DECLARE_INTERFACE_(IDeskBarClient,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IOleWindow methods ***/
    STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND*) PURE;
    STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
    /*** IDeskBarClient methods ***/
    STDMETHOD_(HRESULT,SetDeskBarSite)(THIS_ IUnknown*) PURE;
    STDMETHOD_(HRESULT,SetModeDBC)(THIS_ DWORD) PURE;
    STDMETHOD_(HRESULT,UIActivateDBC)(THIS_ DWORD) PURE;
    STDMETHOD_(HRESULT,GetSize)(THIS_ DWORD,LPRECT) PURE;
};
#undef INTERFACE

#ifdef COBJMACROS
#define IDeskBarClient_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
#define IDeskBarClient_AddRef(T) (T)->lpVtbl->AddRef(T)
#define IDeskBarClient_Release(T) (T)->lpVtbl->Release(T)
#define IDeskBarClient_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
#define IDeskBarClient_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
#define IDeskBarClient_SetDeskBarSite(T,a) (T)->lpVtbl->SetDeskBarSite(T,a)
#define IDeskBarClient_SetModeDBC(T,a) (T)->lpVtbl->SetModeDBC(T,a)
#define IDeskBarClient_UIActivateDBC(T,a) (T)->lpVtbl->UIActivateDBC(T,a)
#define IDeskBarClient_GetSize(T,a,b) (T)->lpVtbl->GetSize(T,a,b)
#endif

#define DBIM_TITLE  0x10
#define DBIMF_VARIABLEHEIGHT    0x8
#define DBIMF_DEBOSSED  0x20
#define DBIF_VIEWMODE_VERTICAL  0x1

#include <pshpack8.h>
typedef struct tagDESKBANDINFO
{
    DWORD dwMask;
    POINTL ptMinSize;
    POINTL ptMaxSize;
    POINTL ptIntegral;
    POINTL ptActual;
    WCHAR wszTitle[256];
    DWORD dwModeFlags;
    COLORREF crBkgnd;
} DESKBANDINFO;
#include <poppack.h>

#define INTERFACE IDeskBand
DECLARE_INTERFACE_(IDeskBand,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IOleWindow methods ***/
    STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND*) PURE;
    STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
    /*** IDockingWindow methods ***/
    STDMETHOD_(HRESULT,ShowDW)(THIS_ BOOL) PURE;
    STDMETHOD_(HRESULT,CloseDW)(THIS_ DWORD) PURE;
    STDMETHOD_(HRESULT,ResizeBoderDW)(THIS_ LPCRECT,IUnknown*,BOOL) PURE;
    /*** IDeskBand methods ***/
    STDMETHOD_(HRESULT,GetBandInfo)(THIS_ DWORD,DWORD,DESKBANDINFO*) PURE;
};
#undef INTERFACE

#ifdef COBJMACROS
#define IDeskBand_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
#define IDeskBand_AddRef(T) (T)->lpVtbl->AddRef(T)
#define IDeskBand_Release(T) (T)->lpVtbl->Release(T)
#define IDeskBand_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
#define IDeskBand_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
#define IDeskBand_ShowDW(T,a) (T)->lpVtbl->ShowDW(T,a)
#define IDeskBand_CloseDW(T,a) (T)->lpVtbl->CloseDW(T,a)
#define IDeskBand_ResizeBorderDW(T,a,b,c) (T)->lpVtbl->ResizeBorderDW(T,a,b,c)
#define IDeskBand_GetBandInfo(T,a,b,c) (T)->lpVtbl->GetBandInfo(T,a,b,c)
#endif

#define INTERFACE IDeskBar
DECLARE_INTERFACE_(IDeskBar,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
    STDMETHOD_(ULONG,Release)(THIS) PURE;
    /*** IOleWindow methods ***/
    STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND*) PURE;
    STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL) PURE;
    /*** IDeskBar methods ***/
    STDMETHOD_(HRESULT,SetClient)(THIS_ IUnknown*) PURE;
    STDMETHOD_(HRESULT,GetClient)(THIS_ IUnknown**) PURE;
    STDMETHOD_(HRESULT,OnPosRectChangeDB)(THIS_ RECT*) PURE;
};
#undef INTERFACE

#ifdef COBJMACROS
#define IDeskBar_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
#define IDeskBar_AddRef(T) (T)->lpVtbl->AddRef(T)
#define IDeskBar_Release(T) (T)->lpVtbl->Release(T)
#define IDeskBar_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
#define IDeskBar_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
#define IDeskBar_SetClient(T,a) (T)->lpVtbl->SetClient(T,a)
#define IDeskBar_GetClient(T,a) (T)->lpVtbl->GetClient(T,a)
#define IDeskBar_OnPosRectChangeDB(T,a) (T)->lpVtbl->OnPosRectChangeDB(T,a)
#endif

#include <pshpack8.h>
typedef struct
{
    DWORD dwMask;
    DWORD dwState;
    DWORD dwStyle;
} BANDSITEINFO;
#include <poppack.h>

#define BSIM_STATE  0x1
#define BSIM_STYLE  0x2

#define BSIS_AUTOGRIPPER    0x0
#define BSIS_NOGRIPPER  0x1
#define BSIS_ALWAYSGRIPPER  0x2
#define BSIS_LOCKED 0x100

#define BSSF_UNDELETEABLE   0x1000

DEFINE_GUID(IID_IBandSite, 0x4CF504B0, 0xDE96, 0x11D0, 0x8B, 0x3F, 0x00, 0xA0, 0xC9, 0x11, 0xE8, 0xE5);

#define INTERFACE IBandSite
DECLARE_INTERFACE_(IBandSite,IUnknown)
{
    /*** IUnknown methods ***/
    STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void** ppvObject) PURE;
    STDMETHOD_(ULONG,AddRef) (THIS) PURE;
    STDMETHOD_(ULONG,Release) (THIS) PURE;
    /*** IBandSite methods ***/
    STDMETHOD_(HRESULT,AddBand) (THIS_ IUnknown *punk) PURE;
    STDMETHOD_(HRESULT,EnumBands) (THIS_ UINT uBand, DWORD *pdwBandID) PURE;
    STDMETHOD_(HRESULT,QueryBand) (THIS_ DWORD dwBandID, IDeskBand **ppstb, DWORD *pdwState, LPWSTR pszName, int cchName) PURE;
    STDMETHOD_(HRESULT,SetBandState) (THIS_ DWORD dwBandID, DWORD dwMask, DWORD dwState) PURE;
    STDMETHOD_(HRESULT,RemoveBand) (THIS_ DWORD dwBandID) PURE;
    STDMETHOD_(HRESULT,GetBandObject) (THIS_ DWORD dwBandID, REFIID riid, VOID **ppv) PURE;
    STDMETHOD_(HRESULT,SetBandSiteInfo) (THIS_ const BANDSITEINFO *pbsinfo) PURE;
    STDMETHOD_(HRESULT,GetBandSiteInfo) (THIS_ BANDSITEINFO *pbsinfo) PURE;
};
#undef INTERFACE

#if defined(COBJMACROS)
/*** IUnknown methods ***/
#define IBandSite_QueryInterface(p,a,b)     (p)->lpVtbl->QueryInterface(p,a,b)
#define IBandSite_AddRef(p)                 (p)->lpVtbl->AddRef(p)
#define IBandSite_Release(p)                (p)->lpVtbl->Release(p)
/*** IBandSite methods ***/
#define IBandSite_AddBand(p,a)              (p)->lpVtbl->AddBand(p,a)
#define IBandSite_EnumBands(p,a,b)          (p)->lpVtbl->EnumBands(p,a,b)
#define IBandSite_QueryBand(p,a,b,c,d,e)    (p)->lpVtbl->QueryBand(p,a,b,c,d,e)
#define IBandSite_SetBandState(p,a,b,c)     (p)->lpVtbl->SetBandState(p,a,b,c)
#define IBandSite_RemoveBand(p,a)           (p)->lpVtbl->RemoveBand(p,a)
#define IBandSite_GetBandObject(p,a,b,c)    (p)->lpVtbl->GetBandObject(p,a,b,c)
#define IBandSite_SetBandSiteInfo(p,a)      (p)->lpVtbl->SetBandSiteInfo(p,a)
#define IBandSite_GetBandSiteInfo(p,a)      (p)->lpVtbl->GetBandSiteInfo(p,a)
#endif

#include <pshpack8.h>
typedef struct _SV2CVW2_PARAMS
{
    DWORD cbSize;
    IShellView *psvPrev;
    LPCFOLDERSETTINGS pfs;
    IShellBrowser *psbOwner;
    RECT *prcView;
    SHELLVIEWID const *pvid;
    HWND hwndView;
} SV2CVW2_PARAMS, *LPSV2CVW2_PARAMS;
#include <poppack.h>

typedef ITEMIDLIST ITEMID_CHILD;
#define PITEMID_CHILD LPITEMIDLIST
typedef const ITEMID_CHILD /* __unaligned */ *PCUITEMID_CHILD;

enum tagSV3CVW3
{
    SV3CVW3_DEFAULT = 0x0,
    SV3CVW3_NONINTERACTIVE = 0x1,
    SV3CVW3_FORCEVIEWMODE = 0x2,
    SV3CVW3_FORCEFOLDERFLAGS = 0x4
} ;
typedef DWORD SV3CVW3_FLAGS;
#define INTERFACE IShellView3
DECLARE_INTERFACE_(IShellView3,IShellView)
{

	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
	STDMETHOD_(ULONG,Release)(THIS) PURE;
	STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
	STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
	STDMETHOD(TranslateAccelerator) (THIS_ LPMSG) PURE;
#ifdef _FIX_ENABLEMODELESS_CONFLICT
	STDMETHOD(EnableModelessSV)(THIS_ BOOL) PURE;
#else
	STDMETHOD(EnableModeless)(THIS_ BOOL) PURE;
#endif
	STDMETHOD(UIActivate)(THIS_ UINT) PURE;
	STDMETHOD(Refresh) (THIS) PURE;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -