Source code of Windows XP (NT5)
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.
|
|
/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
oledserr.h
Abstract:
Contains the entry point for ADsGetLastError ADsSetLastError ADsFreeAllErrorRecords
Author:
Ram Viswanathan (ramv) 20-Sep-1996
Environment:
User Mode - Win32
---*/
#ifndef _OLEDSERR_H_INCLUDED_
#define _OLEDSERR_H_INCLUDED_
#ifdef _cplusplus
extern "C" { #endif
HRESULT ADsGetLastError( OUT LPDWORD lpError, OUT LPWSTR lpErrorBuf, IN DWORD dwErrorBufLen, OUT LPWSTR lpNameBuf, IN DWORD dwNameBufLen );
VOID ADsSetLastError( IN DWORD dwErr, IN LPCWSTR pszError, IN LPCWSTR pszProvider );
VOID ADsFreeAllErrorRecords( VOID );
//=======================
// Data Structures
//=======================
typedef struct _ERROR_RECORD { struct _ERROR_RECORD *Prev; struct _ERROR_RECORD *Next; DWORD dwThreadId; DWORD dwErrorCode; LPWSTR pszErrorText; // This is an allocated buffer
LPWSTR pszProviderName; // This is an allocated buffer
} ERROR_RECORD, *LPERROR_RECORD;
//
// Global Data Structures
//
extern ERROR_RECORD ADsErrorRecList; // Initialized to zeros by loader
extern CRITICAL_SECTION ADsErrorRecCritSec; // Initialized in libmain.cxx
//=======================
// MACROS
//=======================
#define FIND_END_OF_LIST(record) while(record->Next != NULL) { \
record=record->Next; \ }
#define REMOVE_FROM_LIST(record) record->Prev->Next = record->Next; \
if (record->Next != NULL) { \ record->Next->Prev = record->Prev; \ }
#define ADD_TO_LIST(record, newRec) FIND_END_OF_LIST(record) \
record->Next = newRec; \ newRec->Prev = record; \ newRec->Next = NULL;
//
// Local Functions
//
LPERROR_RECORD ADsAllocErrorRecord( VOID);
LPERROR_RECORD ADsFindErrorRecord( VOID);
VOID ADsFreeThreadErrorRecords( VOID);
#ifdef _cplusplus
} #endif
#endif
|