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.
 
 
 
 
 
 

275 lines
9.1 KiB

/* -------------------------------------------------------------------------
Test: OSUTIL
Copyright (C) 1991, Microsoft Corporation
Component: OLE Programmability
Major Area: Type Information Interface
Sub Area: ITypeInfo
Test Area:
Keyword: Win32
---------------------------------------------------------------------------
Purpose: constants for programs that run under Win32
Scenarios:
Abstract:
---------------------------------------------------------------------------
Category:
Product:
Related Files:
Notes: There are three different settings that must be covered by
the library:
OS OLE Automation
1. UNICODE OAU (UNICODE)
2. ANSI OAU
3. ANSI ASNI
When OAU is specified at compile-time; all strings are
defined as UNICODE string regardless the OS.
---------------------------------------------------------------------------
Revision History:
[ 0] 09-Mar-1993 Angelach: Created Test
[ 1] 10-Mar-1994 Angelach: added support to Win32s
[ 2] 24-May-1994 Angelach: added support to diff
machines
[ 3] 06-Jul-1994 Angelach: added support for remoting
typelib testing
[ 4] 27-Oct-1994 Angelach: added LCMapStringX
[ 5] 19-Oct-1994 Angelach: added RegEnumKeyX &
RegDeleteKeyX for Win32s
[ 6] 06-Mar-1995 Angelach: added support for network
[ 7] 07-Mar-1995 Angelach: added Memory-leak detection
--------------------------------------------------------------------------
*/
#include <windows.h>
//#define OAU // OLE Automation is Unicode
#ifndef FAR
#define FAR
#endif
#define EXPORT
#define _NEWCTYPETABLE // specifies to use the wide
// char type table
#undef VOID // windows.h #defines these
#undef LONG // but ole2.h typedef's them
typedef void VOID ;
typedef int BOOL ;
typedef short SHORT ;
typedef int INT ;
typedef long LONG ;
typedef unsigned char BYTE ;
typedef unsigned short WORD ;
typedef unsigned long DWORD ;
typedef unsigned short USHORT ;
typedef unsigned int UINT ;
typedef unsigned long ULONG ;
typedef char CHAR ;
typedef CHAR FAR * LPSTR ;
typedef VOID FAR * LPVOID ;
#define LPSIZE LPVOID
#define LPRECT LPVOID
#define LPLOGPALETTE LPVOID
#define Byte BYTE
#define fLockType BOOL // [3]
#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include <ole2.h>
//#include <dispatch.h>
#include "apglobal.h"
#ifdef DEBUG
#include "cmallspy.h" // [7]
#endif
#ifdef OAU // UNICODE string; all strings [1]
// are UNICODE string regardless
#define CreateTypeLibX CreateTypeLib // what the OS uses
#define LHashValOfNameX LHashValOfName // select an interface and [1]
#define LHashValOfNameSysX LHashValOfNameSys // and support functions
#define LoadRegTypeLibX LoadRegTypeLib
#define LoadTypeLibX(path, pptlb) LoadTypeLibEx(path, REGKIND_NONE, pptlb)
#define RegisterTypeLibX RegisterTypeLib
#define ICreateTypeInfoX ICreateTypeInfo
#define ICreateTypeLibX ICreateTypeLib
#define ITypeInfoX ITypeInfo
#define ITypeLibX ITypeLib
#define ITypeCompX ITypeComp
#define BINDPTRX BINDPTR
#define VARDESCX VARDESC
#define VARIANTX VARIANT
#define IID_ITypeInfoX IID_ITypeInfo
#define BSTRX BSTR
#define CompareStringX CompareStringW
#define CreateFileMonikerX CreateFileMoniker // [3]
#define CLSIDFromStringX CLSIDFromString
#define IIDFromStringX IIDFromString
#define RegOpenKeyX RegOpenKeyW // [3]
#define StgCreateDocfileX StgCreateDocfile
#define SysAllocStringX SysAllocString
#define SysFreeStringX SysFreeString
#define VariantInitX VariantInit
FILE * fopenX (XCHAR *, XCHAR *) ;
int fputsX (XCHAR *, FILE *) ;
#ifdef UNICODE // UNICODE
#define osKillFile DeleteFile // if system is also using
#define osRmDir RemoveDirectory // UNICODE strings
#define LCMapStringX LCMapStringW // [4]
#define RegEnumKeyX RegEnumKeyW // [3] [5]
#define RegDeleteKeyX RegDeleteKeyW // [5]
#else // UNICODE
// if the system is using ANSI,
int osKillFile (XCHAR *) ; // need to convert strings to
int osRmDir (XCHAR *) ; // ANSI before making system call
int LCMapStringX (LCID, DWORD, LPXSTR, int, LPXSTR, int) ; // [4]
long RegEnumKeyX (HKEY, DWORD, LPXSTR, DWORD) ;// [3] [5]
long RegDeleteKeyX(HKEY, LPXSTR) ; // [5]
#endif // UNICODE
#else // OAU
// ANSI strings
#include "ole2ansi.h"
#include "dispansi.h"
#define CreateTypeLibX CreateTypeLibA
#define LHashValOfNameX LHashValOfNameA
#define LHashValOfNameSysX LHashValOfNameSysA
#define LoadRegTypeLibX LoadRegTypeLibA
#define LoadTypeLibX(path, pptlb) LoadTypeLibA(path, pptlb)
#define RegisterTypeLibX RegisterTypeLibA
#define ICreateTypeInfoX ICreateTypeInfoA
#define ICreateTypeLibX ICreateTypeLibA
#define ITypeInfoX ITypeInfoA
#define ITypeLibX ITypeLibA
#define ITypeCompX ITypeCompA
#define BINDPTRX BINDPTRA
#define VARDESCX VARDESCA
#define VARIANTX VARIANTA
#define IID_ITypeInfoX IID_ITypeInfoA
#define BSTRX BSTRA
#define CLSIDFromStringX CLSIDFromStringA
#define CompareStringX CompareStringA
#define CreateFileMonikerX CreateFileMonikerA
#define IIDFromStringX IIDFromStringA
#define LCMapStringX LCMapStringA
#define RegDeleteKeyX RegDeleteKeyA
#define RegEnumKeyX RegEnumKeyA
#define RegOpenKeyX RegOpenKeyA
#define StgCreateDocfileX StgCreateDocfileA
#define SysAllocStringX SysAllocStringA
#define SysFreeStringX SysFreeStringA
#define VariantInitX VariantInitA
#define osKillFile DeleteFile
#define osRmDir RemoveDirectory
#define fopenX fopen
#define fputsX fputs
#endif // OAU
#define MaxAlignment 4 // the largest possible alignment
#define osDeAllocSpaces free
#define SysKind (SYSKIND)SYS_WIN32 // default system kind
#define szPathSep XSTR("\\") // separator for pathspec
#define NameOfDll XSTR("tinfodll.dll")
#define FARPASCAL
#if defined (MIPS) || defined (ALPHA) || defined (PPC) // [2]
#define DLLFUNC1 XSTR("DLLFUNC1")
#define DLLFUNC2 XSTR("DLLFUNC2")
#define DLLFUNC3 XSTR("DLLFUNC3")
#define DLLFUNC4 XSTR("DLLFUNC4")
#define DLLFUNC5 XSTR("DLLFUNC5")
#define DLLFUNC6 XSTR("DLLFUNC6")
#define DLLFUNC7 XSTR("DLLFUNC7")
#define DLLFUNC8 XSTR("DLLFUNC8")
#define DLLFUNC9 XSTR("DLLFUNC9")
#define DLLFUNC10 XSTR("DLLFUNC10")
#else
#define DLLFUNC1 XSTR("DLLFUNC1@0")
#define DLLFUNC2 XSTR("DLLFUNC2@4")
#define DLLFUNC3 XSTR("DLLFUNC3@8")
#define DLLFUNC4 XSTR("DLLFUNC4@16")
#define DLLFUNC5 XSTR("DLLFUNC5@4")
#define DLLFUNC6 XSTR("DLLFUNC6@8")
#define DLLFUNC7 XSTR("DLLFUNC7@8")
#define DLLFUNC8 XSTR("DLLFUNC8@8")
#define DLLFUNC9 XSTR("DLLFUNC9@12")
#define DLLFUNC10 XSTR("DLLFUNC10@4")
#endif // MIPS
// routines defined in osutil.cpp
VOID FAR * osAllocSpaces (WORD) ;
VOID FAR osGetRootDir (LPXSTR) ;
BOOL FAR osGetCurDir (LPXSTR) ;
BOOL FAR osMkDir (LPXSTR) ;
VOID FAR osItoA (int, LPXSTR) ;
VOID FAR osLtoA (long, LPXSTR) ;
long FAR osAtoL (LPXSTR) ;
BOOL FAR osGetNetDrive (LPXSTR, LPXSTR, BOOL) ; // [6]
GUID FAR * osCreateGuid (LPXSTR) ;
BOOL FAR osRetrieveGuid (LPXSTR, GUID) ;
WORD FAR osGetSize (WORD) ;
WORD FAR osGetAlignment (WORD, WORD) ;
VARTYPE FAR osGetEnumType (VOID) ;
HRESULT FAR osOleInit (VOID) ;
VOID FAR osOleUninit (VOID) ;
VOID FAR osMessage (LPXSTR, LPXSTR) ;
UINT FAR osSetErrorMode (UINT) ;
long FAR osDeleteRegTree (LPXSTR) ;
#if !defined(OAU) // ANSI only functions [1]
STDAPI CreateTypeLibA (SYSKIND, char *, ICreateTypeLibA * *) ;
STDAPI LoadTypeLibA (char *, ITypeLibA * *) ;
STDAPI LoadRegTypeLibA (REFGUID, unsigned short, unsigned short, LCID, ITypeLibA * *) ;
STDAPI RegisterTypeLibA (ITypeLibA FAR *, char *, char *) ;
STDAPI CLSIDFromStringA (char *, LPCLSID) ;
STDAPI IIDFromStringA (LPSTR, LPIID) ;
STDAPI StgCreateDocfileA(LPCSTR, DWORD, DWORD, IStorage * *) ;
STDAPI_(unsigned long) LHashValOfNameSysA(SYSKIND, LCID, char *) ;
STDAPI CreateFileMonikerA (char *, LPMONIKER FAR *) ;
#endif
// external routine
VOID FAR mainEntry (LPXSTR lpCmd) ;
VOID NEAR ProcessInput (VOID) ;
#if defined(WIN32) && !defined(UNICODE) // chicago and win32s
LPWSTR FAR PASCAL lstrcatWrap(LPWSTR, LPWSTR) ;
LPWSTR FAR PASCAL lstrcpyWrap(LPWSTR, LPWSTR) ;
#endif