2020-09-30 17:12:32 +02:00

166 lines
5.5 KiB
C

//****************************************************************************
// Module: RNAUI.DLL
// File: rnaui.h
// Content: This file contains the declaration for RnaUI
// History:
// Tue 23-Feb-1993 14:08:25 -by- Viroon Touranachun [viroont]
// Copyright (c) Microsoft Corporation 1991-1994
//****************************************************************************
#ifndef _RNAUI_H_
#define _RNAUI_H_
//****************************************************************************
// Global Include File
//****************************************************************************
#define _INC_OLE
#define STRICT
#include <windows.h> // also includes windowsx.h
#include <shellapi.h> // for registration functions
#include <port32.h>
#include <windowsx.h>
#include <ole2.h>
#undef RtlMoveMemory
__declspec(dllimport) VOID __stdcall
RtlMoveMemory (
VOID UNALIGNED *Destination,
CONST VOID UNALIGNED *Source,
DWORD Length
);
// shlobj.h can be found in \dev\inc
#include <shlobj.h> // Shell OLE interfaces
#define USE_MONIKER
// shellp.h can be found in \win\core\shell\inc
#include <shsemip.h> // 32-bit Shell UI stuff
#include <shellp.h> // *INTERNAL* shell include file (SatoNa gave us permission)
#include <shlwapi.h>
#include <string.h>
#include <rna.h> // RNA Session API
#include <rnaspi.h> // Communication with RNA applet
#include <rnap.h> // Communication with RNA applet
#include "rcids.h" // Resource declaration
#include "cstrings.h" // String constants
#define PUBLIC FAR PASCAL
#define CPUBLIC FAR _cdecl
#define PRIVATE NEAR PASCAL
#include "utils.h" // Common macros
#include "strings.h" // String macros
#include "err.h" // Error/Debug support
#include "subobj.h" // Subobject space
#include "mem.h" // Shared memory support
//****************************************************************************
// Constant Definitions
//****************************************************************************
#define MAXNAME 32 // Maximum name length
#define MAXMESSAGE 128 // Maximum resource string message
#define MAXSTRINGLEN 256 // Maximum output string length
#define MAXINTLEN 7 // Maximum interger string length
#define MAXLONGLEN 11 // Maximum long string length
#define MAXMSGLEN 512 // Maximum message length
#define MAXSUBOBJLEN (2*MAXPATHLEN)
//****************************************************************************
// Macros
//****************************************************************************
#define lmemcpy(dest, src, cb) CopyMemory(dest, src, (DWORD)cb)
#define lmemzero(dest, cb) ZeroMemory(dest, (DWORD)cb)
#define lmemfill(dest, cb, ch) FillMemory(dest, (DWORD)cb, ch)
//#define lstrcpyA(dest, src) strcpy(dest, src)
//#define lstrcpynA(dest, src, cb) {strncpy(dest, src, cb); dest[cb-1]='\0';}
//#define lstrlenA(dest) strlen(dest)
//#define lstrcmpiA(dest, src) stricmp(dest, src)
//#define lstrcmpA(dest, src) strcmp(dest, src)
//#define lstrcatA(dest, src) strcat(dest, src)
// Task allocator macros
#define OLEAddRef(pmalloc) ((pmalloc)->lpVtbl->AddRef((pmalloc)))
#define OLERelease(pmalloc) ((pmalloc)->lpVtbl->Release((pmalloc)))
#define OLEAlloc(pmalloc, cb) ((pmalloc)->lpVtbl->Alloc((pmalloc), (cb)))
#define OLEFree(pmalloc, pv) ((pmalloc)->lpVtbl->Free((pmalloc), (pv)))
#define OLERealloc(pmalloc, pv, cb) ((pmalloc)->lpVtbl->Realloc((pmalloc), (pv), (cb)))
//****************************************************************************
// Constants
//****************************************************************************
#define DEVICE_NULL szNullDevice
#define DEVICE_MODEM szModemDevice
#define CLIENT_WIZ 0x00000002
#define INTRO_WIZ 0x00000080
//****************************************************************************
// Global Parameters
//****************************************************************************
#ifdef DEBUG
extern UINT g_uBreakFlags; // Controls when to int 3
extern UINT g_uTraceFlags; // Controls what trace messages are spewed
extern UINT g_uDumpFlags; // Controls what structs get dumped
#endif
extern HINSTANCE ghInstance;
extern int g_cRef;
extern LPITEMIDLIST g_pidlRemote;
// Critical section stuff
// Notes:
// 1. Never "return" from the critical section.
// 2. Never "SendMessage" or "Yield" from the critical section.
// 3. Never call USER API which may yield.
// 4. Always make the critical section as small as possible.
#ifdef DEBUG
void PUBLIC RNA_EnterExclusive(void);
void PUBLIC RNA_LeaveExclusive(void);
extern BOOL g_bExclusive;
#define ENTEREXCLUSIVE() RNA_EnterExclusive();
#define LEAVEEXCLUSIVE() RNA_LeaveExclusive();
#define ASSERTEXCLUSIVE() ASSERT(g_bExclusive)
#else
extern CRITICAL_SECTION g_csRNA;
#define ENTEREXCLUSIVE() EnterCriticalSection(&g_csRNA);
#define LEAVEEXCLUSIVE() LeaveCriticalSection(&g_csRNA);
#define ASSERTEXCLUSIVE()
#endif
//****************************************************************************
// .ini file routines
//****************************************************************************
BOOL PUBLIC ProcessIniFile(void);
BOOL FAR PASCAL RunWizard (HWND hwnd, DWORD dwType);
#endif //_RNAUI_H_