Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

174 lines
4.7 KiB

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1995
//
// File: types.h
//
// Contents: Various type definitions
//
//----------------------------------------------------------------------------
#include "config.h"
#include "msgbox.h"
#include "dispid.h"
//****************************************************************************
//
// Defines
//
//****************************************************************************
#define IDR_MAINMENU 100
#define IDM_EXIT 300
#define IDM_CONFIGURE 301
#define IDM_ABOUT 302
#define IDM_TRACETAG 303
#define IDM_MEMORYMON 304
#define IDM_RESTART 305
#define IDM_STATUS 306
#define VB_TRUE ((VARIANT_BOOL)-1) // TRUE for VARIANT_BOOL
#define VB_FALSE ((VARIANT_BOOL)0) // FALSE for VARIANT_BOOL
#define SZ_APPLICATION_NAME TEXT("MTScript")
#define SZ_WNDCLASS SZ_APPLICATION_NAME TEXT("_HiddenWindow")
#ifndef RC_INVOKED
//****************************************************************************
//
// Globals
//
//****************************************************************************
extern HANDLE g_hProcHeap; // Handle to process heap.
extern HINSTANCE g_hInstance; // Instance handle of this EXE
//****************************************************************************
//
// Function prototypes
//
//****************************************************************************
void ErrorPopup(LPWSTR pszMsg);
#define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0]))
void ClearInterfaceFn(IUnknown **ppUnk);
template <class PI>
inline void
ClearInterface(PI * ppI)
{
ClearInterfaceFn((IUnknown **) ppI);
}
#define ReleaseInterface(x) if (x) { (x)->Release(); }
#define ULREF_IN_DESTRUCTOR 256
#define DECLARE_STANDARD_IUNKNOWN(cls) \
STDMETHOD(QueryInterface) (REFIID riid, LPVOID * ppv); \
ULONG _ulRefs; \
STDMETHOD_(ULONG, AddRef) (void) \
{ \
return InterlockedIncrement((long*)&_ulRefs); \
} \
STDMETHOD_(ULONG, Release) (void) \
{ \
if (InterlockedDecrement((long*)&_ulRefs) == 0) \
{ \
_ulRefs = ULREF_IN_DESTRUCTOR; \
delete this; \
return 0; \
} \
return _ulRefs; \
} \
ULONG GetRefs(void) \
{ return _ulRefs; }
//****************************************************************************
//
// Enums and Structs
//
//****************************************************************************
//
// THREADMSG -- messages that can be sent between threads.
//
enum THREADMSG
{
MD_SECONDARYSCRIPTTERMINATE,
MD_MACHINECONNECT,
MD_MACHEVENTCALL,
MD_NOTIFYSCRIPT,
MD_REBOOT,
MD_RESTART,
MD_PROCESSEXITED,
MD_PROCESSTERMINATED,
MD_PROCESSCRASHED,
MD_PROCESSCONNECTED,
MD_PROCESSDATA,
MD_SENDTOPROCESS,
MD_OUTPUTDEBUGSTRING,
MD_PLEASEEXIT
};
enum MBT_SELECT
{
MBTS_TIMEOUT = 0,
MBTS_BUTTON1 = 1,
MBTS_BUTTON2 = 2,
MBTS_BUTTON3 = 3,
MBTS_BUTTON4 = 4,
MBTS_BUTTON5 = 5,
MBTS_INTERVAL,
MBTS_ERROR
};
struct MBTIMEOUT
{
BSTR bstrMessage;
long cButtons;
BSTR bstrButtonText;
long lTimeout;
long lEventInterval;
BOOL fCanCancel;
BOOL fConfirm;
HANDLE hEvent;
MBT_SELECT mbts;
};
struct SCRIPT_PARAMS
{
LPTSTR pszPath;
VARIANT *pvarParams;
};
struct PROCESS_PARAMS
{
LPTSTR pszCommand;
LPTSTR pszDir;
LPTSTR pszTitle;
BOOL fMinimize;
BOOL fGetOutput;
BOOL fNoEnviron;
BOOL fNoCrashPopup;
};
struct MACHPROC_EVENT_DATA
{
HANDLE hEvent;
DWORD dwProcId;
BSTR bstrCmd;
BSTR bstrParams;
VARIANT * pvReturn;
DWORD dwGITCookie;
HRESULT hrReturn;
};
#endif // RC_INVOKED