Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS

Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
This commit is contained in:
Cyd
2026-06-24 21:28:16 -05:00
commit 2b8ca921cb
66341 changed files with 7923174 additions and 0 deletions
@@ -0,0 +1,628 @@
//+-------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1993-1997.
//
// File: accctrl.h
//
// Contents: common includes for new style Win32 Access Control
// APIs
//
//
//--------------------------------------------------------------------
#ifndef __ACCESS_CONTROL__
#define __ACCESS_CONTROL__
#ifndef __midl
#include <wtypes.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
#define AccFree LocalFree
//
// Definition: TRUSTEE_TYPE
// This enumerated type specifies the type of trustee account for the trustee
// returned by the API described in this document.
// TRUSTEE_IS_UNKNOWN - The trustee is an unknown, but not necessarily invalid
// type. This field is not validated on input to the APIs
// that take Trustees.
// TRUSTEE_IS_USER The trustee account is a user account.
// TRUSTEE_IS_GROUP The trustee account is a group account.
//
typedef enum _TRUSTEE_TYPE
{
TRUSTEE_IS_UNKNOWN,
TRUSTEE_IS_USER,
TRUSTEE_IS_GROUP,
TRUSTEE_IS_DOMAIN,
TRUSTEE_IS_ALIAS,
TRUSTEE_IS_WELL_KNOWN_GROUP,
TRUSTEE_IS_DELETED,
TRUSTEE_IS_INVALID,
} TRUSTEE_TYPE;
//
// Definition: TRUSTEE_FORM
// This enumerated type specifies the form the trustee identifier is in for a
// particular trustee.
// TRUSTEE_IS_SID The trustee is identified with a SID rather than with a name.
// TRUSTEE_IS_NAME The trustee is identified with a name.
//
typedef enum _TRUSTEE_FORM
{
TRUSTEE_IS_SID,
TRUSTEE_IS_NAME,
TRUSTEE_BAD_FORM
} TRUSTEE_FORM;
//
// Definition: MULTIPLE_TRUSTEE_OPERATION
// If the trustee is a multiple trustee, this enumerated type specifies the type.
// TRUSTEE_IS_IMPERSONATE The trustee is an impersonate trustee and the multiple
// trustee field in the trustee points to another trustee
// that is a trustee for the server that will be doing the
// impersonation.
//
typedef enum _MULTIPLE_TRUSTEE_OPERATION
{
NO_MULTIPLE_TRUSTEE,
TRUSTEE_IS_IMPERSONATE,
} MULTIPLE_TRUSTEE_OPERATION;
//
// Definition: TRUSTEE
// This structure is used to pass account information into and out of the system
// using the API defined in this document.
// PMultipleTrustee - if NON-NULL, points to another trustee structure, as
// defined by the multiple trustee operation field.
// MultipleTrusteeOperation - Defines the multiple trustee operation/type.
// TrusteeForm - defines if the trustee is defined by name or SID.
// TrusteeType - defines if the trustee type is unknown, a user or a group.
// PwcsName - points to the trustee name or the trustee SID.
//
typedef struct _TRUSTEE_A
{
struct _TRUSTEE_A *pMultipleTrustee;
MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
TRUSTEE_FORM TrusteeForm;
TRUSTEE_TYPE TrusteeType;
#ifdef __midl
[switch_is(TrusteeForm)]
union
{
[case(TRUSTEE_IS_NAME)]
LPSTR ptstrName;
[case(TRUSTEE_IS_SID)]
SID *pSid;
};
#else
LPSTR ptstrName;
#endif
} TRUSTEE_A, *PTRUSTEE_A, TRUSTEEA, *PTRUSTEEA;
typedef struct _TRUSTEE_W
{
struct _TRUSTEE_W *pMultipleTrustee;
MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
TRUSTEE_FORM TrusteeForm;
TRUSTEE_TYPE TrusteeType;
#ifdef __midl
[switch_is(TrusteeForm)]
union
{
[case(TRUSTEE_IS_NAME)]
LPWSTR ptstrName;
[case(TRUSTEE_IS_SID)]
SID *pSid;
};
#else
LPWSTR ptstrName;
#endif
} TRUSTEE_W, *PTRUSTEE_W, TRUSTEEW, *PTRUSTEEW;
#ifdef UNICODE
typedef TRUSTEE_W TRUSTEE_;
typedef PTRUSTEE_W PTRUSTEE_;
typedef TRUSTEEW TRUSTEE;
typedef PTRUSTEEW PTRUSTEE;
#else
typedef TRUSTEE_A TRUSTEE_;
typedef PTRUSTEE_A PTRUSTEE_;
typedef TRUSTEEA TRUSTEE;
typedef PTRUSTEEA PTRUSTEE;
#endif // UNICODE
//
// Definition: ACCESS_MODE
// This enumerated type specifies how permissions are (requested)/to be applied
// for the trustee by the access control entry. On input this field can by any
// of the values, although it is not meaningful to mix access control and audit
// control entries. On output this field will be either SET_ACCESS, DENY_ACCESS,
// SET_AUDIT_SUCCESS, SET_AUDIT_FAILURE.
// The following descriptions define how this type effects an explicit access
// request to apply access permissions to an object.
// GRANT_ACCESS - The trustee will have at least the requested permissions upon
// successful completion of the command. (If the trustee has
// additional permissions they will not be removed).
// SET_ACCESS - The trustee will have exactly the requested permissions upon
// successful completion of the command.
// DENY_ACCESS - The trustee will be denied the specified permissions.
// REVOKE_ACCESS - Any explicit access rights the trustee has will be revoked.
// SET_AUDIT_SUCCESS - The trustee will be audited for successful opens of the
// object using the requested permissions.
// SET_AUDIT_FAILURE - The trustee will be audited for failed opens of the object
// using the requested permissions.
//
typedef enum _ACCESS_MODE
{
NOT_USED_ACCESS = 0,
GRANT_ACCESS,
SET_ACCESS,
DENY_ACCESS,
REVOKE_ACCESS,
SET_AUDIT_SUCCESS,
SET_AUDIT_FAILURE
} ACCESS_MODE;
//
// Definition: Inheritance flags
// These bit masks are provided to allow simple application of inheritance in
// explicit access requests on containers.
// NO_INHERITANCE The specific access permissions will only be applied to
// the container, and will not be inherited by objects created
// within the container.
// SUB_CONTAINERS_ONLY_INHERIT The specific access permissions will be inherited
// and applied to sub containers created within the
// container, and will be applied to the container
// itself.
// SUB_OBJECTS_ONLY_INHERIT The specific access permissions will only be inherited
// by objects created within the specific container.
// The access permissions will not be applied to the
// container itself.
// SUB_CONTAINERS_AND_OBJECTS_INHERIT The specific access permissions will be
// inherited by containers created within the
// specific container, will be applied to
// objects created within the container, but
// will not be applied to the container itself.
//
#define NO_INHERITANCE 0x0
#define SUB_OBJECTS_ONLY_INHERIT 0x1
#define SUB_CONTAINERS_ONLY_INHERIT 0x2
#define SUB_CONTAINERS_AND_OBJECTS_INHERIT 0x3
#define INHERIT_NO_PROPAGATE 0x4
#define INHERIT_ONLY 0x8
//
// Informational bit that is returned
//
#define INHERITED_ACCESS_ENTRY 0x10
//
// Informational bit that tells where a node was inherited from. Valid only
// for NT 5 APIs
//
#define INHERITED_PARENT 0x10000000
#define INHERITED_GRANDPARENT 0x20000000
//
// Definition:
// This enumerated type defines the objects supported by the get/set API within
// this document. See section 3.1, Object Types for a detailed definition of the
// supported object types, and their name formats.
//
typedef enum _SE_OBJECT_TYPE
{
SE_UNKNOWN_OBJECT_TYPE = 0,
SE_FILE_OBJECT,
SE_SERVICE,
SE_PRINTER,
SE_REGISTRY_KEY,
SE_LMSHARE,
SE_KERNEL_OBJECT,
SE_WINDOW_OBJECT,
SE_DS_OBJECT,
SE_DS_OBJECT_ALL,
SE_PROVIDER_DEFINED_OBJECT
} SE_OBJECT_TYPE;
//
// Definition: EXPLICIT_ACCESS
// This structure is used to pass access control entry information into and out
// of the system using the API defined in this document.
// grfAccessPermissions - This contains the access permissions to assign for the
// trustee. It is in the form of an NT access mask.
// grfAccessMode - This field defines how the permissions are to be applied for
// the trustee.
// grfInheritance - For containers, this field defines how the access control
// entry is/(is requested) to be inherited on
// objects/sub-containers created within the container.
// Trustee - This field contains the definition of the trustee account the
// explicit access applies to.
//
typedef struct _EXPLICIT_ACCESS_A
{
DWORD grfAccessPermissions;
ACCESS_MODE grfAccessMode;
DWORD grfInheritance;
TRUSTEE_A Trustee;
} EXPLICIT_ACCESS_A, *PEXPLICIT_ACCESS_A, EXPLICIT_ACCESSA, *PEXPLICIT_ACCESSA;
typedef struct _EXPLICIT_ACCESS_W
{
DWORD grfAccessPermissions;
ACCESS_MODE grfAccessMode;
DWORD grfInheritance;
TRUSTEE_W Trustee;
} EXPLICIT_ACCESS_W, *PEXPLICIT_ACCESS_W, EXPLICIT_ACCESSW, *PEXPLICIT_ACCESSW;
#ifdef UNICODE
typedef EXPLICIT_ACCESS_W EXPLICIT_ACCESS_;
typedef PEXPLICIT_ACCESS_W PEXPLICIT_ACCESS_;
typedef EXPLICIT_ACCESSW EXPLICIT_ACCESS;
typedef PEXPLICIT_ACCESSW PEXPLICIT_ACCESS;
#else
typedef EXPLICIT_ACCESS_A EXPLICIT_ACCESS_;
typedef PEXPLICIT_ACCESS_A PEXPLICIT_ACCESS_;
typedef EXPLICIT_ACCESSA EXPLICIT_ACCESS;
typedef PEXPLICIT_ACCESSA PEXPLICIT_ACCESS;
#endif // UNICODE
//----------------------------------------------------------------------------
//
// NT5 APIs
//
//----------------------------------------------------------------------------
//
// Default provider
//
#define ACCCTRL_DEFAULT_PROVIDER TEXT("Windows NT Access Provider")
//
/// Access rights
//
typedef ULONG ACCESS_RIGHTS, *PACCESS_RIGHTS;
//
// Inheritance flags
//
typedef ULONG INHERIT_FLAGS, *PINHERIT_FLAGS;
//
// Access / Audit structures
//
typedef struct _ACTRL_ACCESS_ENTRYA
{
TRUSTEE_A Trustee;
ULONG fAccessFlags;
ACCESS_RIGHTS Access;
ACCESS_RIGHTS ProvSpecificAccess;
INHERIT_FLAGS Inheritance;
LPSTR lpInheritProperty;
} ACTRL_ACCESS_ENTRYA, *PACTRL_ACCESS_ENTRYA;
//
// Access / Audit structures
//
typedef struct _ACTRL_ACCESS_ENTRYW
{
TRUSTEE_W Trustee;
ULONG fAccessFlags;
ACCESS_RIGHTS Access;
ACCESS_RIGHTS ProvSpecificAccess;
INHERIT_FLAGS Inheritance;
LPWSTR lpInheritProperty;
} ACTRL_ACCESS_ENTRYW, *PACTRL_ACCESS_ENTRYW;
#ifdef UNICODE
typedef ACTRL_ACCESS_ENTRYW ACTRL_ACCESS_ENTRY;
typedef PACTRL_ACCESS_ENTRYW PACTRL_ACCESS_ENTRY;
#else
typedef ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRY;
typedef PACTRL_ACCESS_ENTRYA PACTRL_ACCESS_ENTRY;
#endif // UNICODE
typedef struct _ACTRL_ACCESS_ENTRY_LISTA
{
ULONG cEntries;
#ifdef __midl
[size_is(cEntries)]
#endif
ACTRL_ACCESS_ENTRYA *pAccessList;
} ACTRL_ACCESS_ENTRY_LISTA, *PACTRL_ACCESS_ENTRY_LISTA;
typedef struct _ACTRL_ACCESS_ENTRY_LISTW
{
ULONG cEntries;
#ifdef __midl
[size_is(cEntries)]
#endif
ACTRL_ACCESS_ENTRYW *pAccessList;
} ACTRL_ACCESS_ENTRY_LISTW, *PACTRL_ACCESS_ENTRY_LISTW;
#ifdef UNICODE
typedef ACTRL_ACCESS_ENTRY_LISTW ACTRL_ACCESS_ENTRY_LIST;
typedef PACTRL_ACCESS_ENTRY_LISTW PACTRL_ACCESS_ENTRY_LIST;
#else
typedef ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LIST;
typedef PACTRL_ACCESS_ENTRY_LISTA PACTRL_ACCESS_ENTRY_LIST;
#endif // UNICODE
typedef struct _ACTRL_PROPERTY_ENTRYA
{
LPSTR lpProperty;
PACTRL_ACCESS_ENTRY_LISTA pAccessEntryList;
ULONG fListFlags;
} ACTRL_PROPERTY_ENTRYA, *PACTRL_PROPERTY_ENTRYA;
typedef struct _ACTRL_PROPERTY_ENTRYW
{
LPWSTR lpProperty;
PACTRL_ACCESS_ENTRY_LISTW pAccessEntryList;
ULONG fListFlags;
} ACTRL_PROPERTY_ENTRYW, *PACTRL_PROPERTY_ENTRYW;
#ifdef UNICODE
typedef ACTRL_PROPERTY_ENTRYW ACTRL_PROPERTY_ENTRY;
typedef PACTRL_PROPERTY_ENTRYW PACTRL_PROPERTY_ENTRY;
#else
typedef ACTRL_PROPERTY_ENTRYA ACTRL_PROPERTY_ENTRY;
typedef PACTRL_PROPERTY_ENTRYA PACTRL_PROPERTY_ENTRY;
#endif // UNICODE
typedef struct _ACTRL_ALISTA
{
ULONG cEntries;
#ifdef __midl
[size_is(cEntries)]
#endif
PACTRL_PROPERTY_ENTRYA pPropertyAccessList;
} ACTRL_ACCESSA, *PACTRL_ACCESSA, ACTRL_AUDITA, *PACTRL_AUDITA;
typedef struct _ACTRL_ALISTW
{
ULONG cEntries;
#ifdef __midl
[size_is(cEntries)]
#endif
PACTRL_PROPERTY_ENTRYW pPropertyAccessList;
} ACTRL_ACCESSW, *PACTRL_ACCESSW, ACTRL_AUDITW, *PACTRL_AUDITW;
#ifdef UNICODE
typedef ACTRL_ACCESSW ACTRL_ACCESS;
typedef PACTRL_ACCESSW PACTRL_ACCESS;
typedef ACTRL_AUDITW ACTRL_AUDIT;
typedef PACTRL_AUDITW PACTRL_AUDIT;
#else
typedef ACTRL_ACCESSA ACTRL_ACCESS;
typedef PACTRL_ACCESSA PACTRL_ACCESS;
typedef ACTRL_AUDITA ACTRL_AUDIT;
typedef PACTRL_AUDITA PACTRL_AUDIT;
#endif // UNICODE
//
// TRUSTEE_ACCESS flags
//
#define TRUSTEE_ACCESS_ALLOWED 0x00000001L
#define TRUSTEE_ACCESS_READ 0x00000002L
#define TRUSTEE_ACCESS_WRITE 0x00000004L
#define TRUSTEE_ACCESS_EXPLICIT 0x00000001L
#define TRUSTEE_ACCESS_READ_WRITE (TRUSTEE_ACCESS_READ | \
TRUSTEE_ACCESS_WRITE)
#define TRUSTEE_ACCESS_ALL 0xFFFFFFFFL
typedef struct _TRUSTEE_ACCESSA
{
LPSTR lpProperty;
ACCESS_RIGHTS Access;
ULONG fAccessFlags;
ULONG fReturnedAccess;
} TRUSTEE_ACCESSA, *PTRUSTEE_ACCESSA;
typedef struct _TRUSTEE_ACCESSW
{
LPWSTR lpProperty;
ACCESS_RIGHTS Access;
ULONG fAccessFlags;
ULONG fReturnedAccess;
} TRUSTEE_ACCESSW, *PTRUSTEE_ACCESSW;
#ifdef UNICODE
typedef TRUSTEE_ACCESSW TRUSTEE_ACCESS;
typedef PTRUSTEE_ACCESSW PTRUSTEE_ACCESS;
#else
typedef TRUSTEE_ACCESSA TRUSTEE_ACCESS;
typedef PTRUSTEE_ACCESSA PTRUSTEE_ACCESS;
#endif // UNICODE
//
// Generic permission values
//
#define ACTRL_RESERVED 0x00000000
#define ACTRL_PERM_1 0x00000001
#define ACTRL_PERM_2 0x00000002
#define ACTRL_PERM_3 0x00000004
#define ACTRL_PERM_4 0x00000008
#define ACTRL_PERM_5 0x00000010
#define ACTRL_PERM_6 0x00000020
#define ACTRL_PERM_7 0x00000040
#define ACTRL_PERM_8 0x00000080
#define ACTRL_PERM_9 0x00000100
#define ACTRL_PERM_10 0x00000200
#define ACTRL_PERM_11 0x00000400
#define ACTRL_PERM_12 0x00000800
#define ACTRL_PERM_13 0x00001000
#define ACTRL_PERM_14 0x00002000
#define ACTRL_PERM_15 0x00004000
#define ACTRL_PERM_16 0x00008000
#define ACTRL_PERM_17 0x00010000
#define ACTRL_PERM_18 0x00020000
#define ACTRL_PERM_19 0x00040000
#define ACTRL_PERM_20 0x00080000
//
// Access permissions
//
#define ACTRL_ACCESS_ALLOWED 0x00000001
#define ACTRL_ACCESS_DENIED 0x00000002
#define ACTRL_AUDIT_SUCCESS 0x00000004
#define ACTRL_AUDIT_FAILURE 0x00000008
//
// Property list flags
//
#define ACTRL_ACCESS_PROTECTED 0x00000001
//
// Standard and object rights
//
#define ACTRL_SYSTEM_ACCESS 0x04000000
#define ACTRL_DELETE 0x08000000
#define ACTRL_READ_CONTROL 0x10000000
#define ACTRL_CHANGE_ACCESS 0x20000000
#define ACTRL_CHANGE_OWNER 0x40000000
#define ACTRL_SYNCHRONIZE 0x80000000
#define ACTRL_STD_RIGHTS_ALL 0xf8000000
#define ACTRL_DS_OPEN ACTRL_RESERVED
#define ACTRL_DS_CREATE_CHILD ACTRL_PERM_1
#define ACTRL_DS_DELETE_CHILD ACTRL_PERM_2
#define ACTRL_DS_LIST ACTRL_PERM_3
#define ACTRL_DS_SELF ACTRL_PERM_4
#define ACTRL_DS_READ_PROP ACTRL_PERM_5
#define ACTRL_DS_WRITE_PROP ACTRL_PERM_6
#define ACTRL_FILE_READ ACTRL_PERM_1
#define ACTRL_FILE_WRITE ACTRL_PERM_2
#define ACTRL_FILE_APPEND ACTRL_PERM_3
#define ACTRL_FILE_READ_PROP ACTRL_PERM_4
#define ACTRL_FILE_WRITE_PROP ACTRL_PERM_5
#define ACTRL_FILE_EXECUTE ACTRL_PERM_6
#define ACTRL_FILE_READ_ATTRIB ACTRL_PERM_7
#define ACTRL_FILE_WRITE_ATTRIB ACTRL_PERM_8
#define ACTRL_DIR_LIST ACTRL_PERM_1
#define ACTRL_DIR_CREATE_OBJECT ACTRL_PERM_2
#define ACTRL_DIR_CREATE_CHILD ACTRL_PERM_3
#define ACTRL_DIR_DELETE_CHILD ACTRL_PERM_4
#define ACTRL_DIR_TRAVERSE ACTRL_PERM_6
#define ACTRL_KERNEL_TERMINATE ACTRL_PERM_1
#define ACTRL_KERNEL_THREAD ACTRL_PERM_2
#define ACTRL_KERNEL_VM ACTRL_PERM_3
#define ACTRL_KERNEL_VM_READ ACTRL_PERM_4
#define ACTRL_KERNEL_VM_WRITE ACTRL_PERM_5
#define ACTRL_KERNEL_DUP_HANDLE ACTRL_PERM_6
#define ACTRL_KERNEL_PROCESS ACTRL_PERM_7
#define ACTRL_KERNEL_SET_INFO ACTRL_PERM_8
#define ACTRL_KERNEL_GET_INFO ACTRL_PERM_9
#define ACTRL_KERNEL_CONTROL ACTRL_PERM_10
#define ACTRL_KERNEL_ALERT ACTRL_PERM_11
#define ACTRL_KERNEL_GET_CONTEXT ACTRL_PERM_12
#define ACTRL_KERNEL_SET_CONTEXT ACTRL_PERM_13
#define ACTRL_KERNEL_TOKEN ACTRL_PERM_14
#define ACTRL_KERNEL_IMPERSONATE ACTRL_PERM_15
#define ACTRL_KERNEL_DIMPERSONATE ACTRL_PERM_16
#define ACTRL_PRINT_SADMIN ACTRL_PERM_1
#define ACTRL_PRINT_SLIST ACTRL_PERM_2
#define ACTRL_PRINT_PADMIN ACTRL_PERM_3
#define ACTRL_PRINT_PUSE ACTRL_PERM_4
#define ACTRL_PRINT_JADMIN ACTRL_PERM_5
#define ACTRL_SVC_GET_INFO ACTRL_PERM_1
#define ACTRL_SVC_SET_INFO ACTRL_PERM_2
#define ACTRL_SVC_STATUS ACTRL_PERM_3
#define ACTRL_SVC_LIST ACTRL_PERM_4
#define ACTRL_SVC_START ACTRL_PERM_5
#define ACTRL_SVC_STOP ACTRL_PERM_6
#define ACTRL_SVC_PAUSE ACTRL_PERM_7
#define ACTRL_SVC_INTERROGATE ACTRL_PERM_8
#define ACTRL_SVC_UCONTROL ACTRL_PERM_9
#define ACTRL_REG_QUERY ACTRL_PERM_1
#define ACTRL_REG_SET ACTRL_PERM_2
#define ACTRL_REG_CREATE_CHILD ACTRL_PERM_3
#define ACTRL_REG_LIST ACTRL_PERM_4
#define ACTRL_REG_NOTIFY ACTRL_PERM_5
#define ACTRL_REG_LINK ACTRL_PERM_6
#define ACTRL_WIN_CLIPBRD ACTRL_PERM_1
#define ACTRL_WIN_GLOBAL_ATOMS ACTRL_PERM_2
#define ACTRL_WIN_CREATE ACTRL_PERM_3
#define ACTRL_WIN_LIST_DESK ACTRL_PERM_4
#define ACTRL_WIN_LIST ACTRL_PERM_5
#define ACTRL_WIN_READ_ATTRIBS ACTRL_PERM_6
#define ACTRL_WIN_WRITE_ATTRIBS ACTRL_PERM_7
#define ACTRL_WIN_SCREEN ACTRL_PERM_8
#define ACTRL_WIN_EXIT ACTRL_PERM_9
typedef struct _ACTRL_OVERLAPPED
{
ULONG Reserved1;
ULONG Reserved2;
HANDLE hEvent;
} ACTRL_OVERLAPPED, *PACTRL_OVERLAPPED;
typedef struct _ACTRL_ACCESS_INFOA
{
ULONG fAccessPermission;
LPSTR lpAccessPermissionName;
} ACTRL_ACCESS_INFOA, *PACTRL_ACCESS_INFOA;
typedef struct _ACTRL_ACCESS_INFOW
{
ULONG fAccessPermission;
LPWSTR lpAccessPermissionName;
} ACTRL_ACCESS_INFOW, *PACTRL_ACCESS_INFOW;
#ifdef UNICODE
typedef ACTRL_ACCESS_INFOW ACTRL_ACCESS_INFO;
typedef PACTRL_ACCESS_INFOW PACTRL_ACCESS_INFO;
#else
typedef ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFO;
typedef PACTRL_ACCESS_INFOA PACTRL_ACCESS_INFO;
#endif // UNICODE
typedef struct _ACTRL_CONTROL_INFOA
{
LPSTR lpControlId;
LPSTR lpControlName;
} ACTRL_CONTROL_INFOA, *PACTRL_CONTROL_INFOA;
typedef struct _ACTRL_CONTROL_INFOW
{
LPWSTR lpControlId;
LPWSTR lpControlName;
} ACTRL_CONTROL_INFOW, *PACTRL_CONTROL_INFOW;
#ifdef UNICODE
typedef ACTRL_CONTROL_INFOW ACTRL_CONTROL_INFO;
typedef PACTRL_CONTROL_INFOW PACTRL_CONTROL_INFO;
#else
typedef ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFO;
typedef PACTRL_CONTROL_INFOA PACTRL_CONTROL_INFO;
#endif // UNICODE
#define ACTRL_ACCESS_NO_OPTIONS 0x00000000
#define ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES 0x00000001
#ifdef __cplusplus
}
#endif
#endif // __ACCESS_CONTROL__
@@ -0,0 +1,715 @@
//+-------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1993-1997.
//
// File: aclapi.h
//
// Contents: public header file for acl and trusted server access control
// APIs
//
//--------------------------------------------------------------------
#ifndef __ACCESS_CONTROL_API__
#define __ACCESS_CONTROL_API__
#ifdef __cplusplus
extern "C" {
#endif
#include <windows.h>
#include <accctrl.h>
DWORD
WINAPI
SetEntriesInAclA( IN ULONG cCountOfExplicitEntries,
IN PEXPLICIT_ACCESS_A pListOfExplicitEntries,
IN PACL OldAcl,
OUT PACL * NewAcl);
DWORD
WINAPI
SetEntriesInAclW( IN ULONG cCountOfExplicitEntries,
IN PEXPLICIT_ACCESS_W pListOfExplicitEntries,
IN PACL OldAcl,
OUT PACL * NewAcl);
#ifdef UNICODE
#define SetEntriesInAcl SetEntriesInAclW
#else
#define SetEntriesInAcl SetEntriesInAclA
#endif // !UNICODE
DWORD
WINAPI
GetExplicitEntriesFromAclA( IN PACL pacl,
OUT PULONG pcCountOfExplicitEntries,
OUT PEXPLICIT_ACCESS_A * pListOfExplicitEntries);
DWORD
WINAPI
GetExplicitEntriesFromAclW( IN PACL pacl,
OUT PULONG pcCountOfExplicitEntries,
OUT PEXPLICIT_ACCESS_W * pListOfExplicitEntries);
#ifdef UNICODE
#define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclW
#else
#define GetExplicitEntriesFromAcl GetExplicitEntriesFromAclA
#endif // !UNICODE
DWORD
WINAPI
GetEffectiveRightsFromAclA( IN PACL pacl,
IN PTRUSTEE_A pTrustee,
OUT PACCESS_MASK pAccessRights);
DWORD
WINAPI
GetEffectiveRightsFromAclW( IN PACL pacl,
IN PTRUSTEE_W pTrustee,
OUT PACCESS_MASK pAccessRights);
#ifdef UNICODE
#define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclW
#else
#define GetEffectiveRightsFromAcl GetEffectiveRightsFromAclA
#endif // !UNICODE
DWORD
WINAPI
GetAuditedPermissionsFromAclA( IN PACL pacl,
IN PTRUSTEE_A pTrustee,
OUT PACCESS_MASK pSuccessfulAuditedRights,
OUT PACCESS_MASK pFailedAuditRights);
DWORD
WINAPI
GetAuditedPermissionsFromAclW( IN PACL pacl,
IN PTRUSTEE_W pTrustee,
OUT PACCESS_MASK pSuccessfulAuditedRights,
OUT PACCESS_MASK pFailedAuditRights);
#ifdef UNICODE
#define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclW
#else
#define GetAuditedPermissionsFromAcl GetAuditedPermissionsFromAclA
#endif // !UNICODE
DWORD
WINAPI
GetNamedSecurityInfoA( IN LPSTR pObjectName,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
OUT PSID * ppsidOowner,
OUT PSID * ppsidGroup,
OUT PACL * ppDacl,
OUT PACL * ppSacl,
OUT PSECURITY_DESCRIPTOR * ppSecurityDescriptor);
DWORD
WINAPI
GetNamedSecurityInfoW( IN LPWSTR pObjectName,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
OUT PSID * ppsidOowner,
OUT PSID * ppsidGroup,
OUT PACL * ppDacl,
OUT PACL * ppSacl,
OUT PSECURITY_DESCRIPTOR * ppSecurityDescriptor);
#ifdef UNICODE
#define GetNamedSecurityInfo GetNamedSecurityInfoW
#else
#define GetNamedSecurityInfo GetNamedSecurityInfoA
#endif // !UNICODE
DWORD
WINAPI
GetSecurityInfo( IN HANDLE handle,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
OUT PSID * ppsidOowner,
OUT PSID * ppsidGroup,
OUT PACL * ppDacl,
OUT PACL * ppSacl,
OUT PSECURITY_DESCRIPTOR * ppSecurityDescriptor);
DWORD
WINAPI
SetNamedSecurityInfoA( IN LPSTR pObjectName,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN PSID psidOowner,
IN PSID psidGroup,
IN PACL pDacl,
IN PACL pSacl);
DWORD
WINAPI
SetNamedSecurityInfoW( IN LPWSTR pObjectName,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN PSID psidOowner,
IN PSID psidGroup,
IN PACL pDacl,
IN PACL pSacl);
#ifdef UNICODE
#define SetNamedSecurityInfo SetNamedSecurityInfoW
#else
#define SetNamedSecurityInfo SetNamedSecurityInfoA
#endif // !UNICODE
DWORD
WINAPI
SetSecurityInfo( IN HANDLE handle,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN PSID psidOowner,
IN PSID psidGroup,
IN PACL pDacl,
IN PACL pSacl);
//----------------------------------------------------------------------------
// The following API are provided for trusted servers to use to
// implement access control on their own objects.
//----------------------------------------------------------------------------
DWORD
WINAPI
BuildSecurityDescriptorA( IN PTRUSTEE_A pOwner,
IN PTRUSTEE_A pGroup,
IN ULONG cCountOfAccessEntries,
IN PEXPLICIT_ACCESS_A pListOfAccessEntries,
IN ULONG cCountOfAuditEntries,
IN PEXPLICIT_ACCESS_A pListOfAuditEntries,
IN PSECURITY_DESCRIPTOR pOldSD,
OUT PULONG pSizeNewSD,
OUT PSECURITY_DESCRIPTOR * pNewSD);
DWORD
WINAPI
BuildSecurityDescriptorW( IN PTRUSTEE_W pOwner,
IN PTRUSTEE_W pGroup,
IN ULONG cCountOfAccessEntries,
IN PEXPLICIT_ACCESS_W pListOfAccessEntries,
IN ULONG cCountOfAuditEntries,
IN PEXPLICIT_ACCESS_W pListOfAuditEntries,
IN PSECURITY_DESCRIPTOR pOldSD,
OUT PULONG pSizeNewSD,
OUT PSECURITY_DESCRIPTOR * pNewSD);
#ifdef UNICODE
#define BuildSecurityDescriptor BuildSecurityDescriptorW
#else
#define BuildSecurityDescriptor BuildSecurityDescriptorA
#endif // !UNICODE
DWORD
WINAPI
LookupSecurityDescriptorPartsA( OUT PTRUSTEE_A * pOwner,
OUT PTRUSTEE_A * pGroup,
OUT PULONG cCountOfAccessEntries,
OUT PEXPLICIT_ACCESS_A * pListOfAccessEntries,
OUT PULONG cCountOfAuditEntries,
OUT PEXPLICIT_ACCESS_A * pListOfAuditEntries,
IN PSECURITY_DESCRIPTOR pSD);
DWORD
WINAPI
LookupSecurityDescriptorPartsW( OUT PTRUSTEE_W * pOwner,
OUT PTRUSTEE_W * pGroup,
OUT PULONG cCountOfAccessEntries,
OUT PEXPLICIT_ACCESS_W * pListOfAccessEntries,
OUT PULONG cCountOfAuditEntries,
OUT PEXPLICIT_ACCESS_W * pListOfAuditEntries,
IN PSECURITY_DESCRIPTOR pSD);
#ifdef UNICODE
#define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsW
#else
#define LookupSecurityDescriptorParts LookupSecurityDescriptorPartsA
#endif // !UNICODE
//----------------------------------------------------------------------------
// The following helper API are provided for building
// access control structures.
//----------------------------------------------------------------------------
VOID
WINAPI
BuildExplicitAccessWithNameA( IN OUT PEXPLICIT_ACCESS_A pExplicitAccess,
IN LPSTR pTrusteeName,
IN DWORD AccessPermissions,
IN ACCESS_MODE AccessMode,
IN DWORD Inheritance);
VOID
WINAPI
BuildExplicitAccessWithNameW( IN OUT PEXPLICIT_ACCESS_W pExplicitAccess,
IN LPWSTR pTrusteeName,
IN DWORD AccessPermissions,
IN ACCESS_MODE AccessMode,
IN DWORD Inheritance);
#ifdef UNICODE
#define BuildExplicitAccessWithName BuildExplicitAccessWithNameW
#else
#define BuildExplicitAccessWithName BuildExplicitAccessWithNameA
#endif // !UNICODE
VOID
WINAPI
BuildImpersonateExplicitAccessWithNameA(
IN OUT PEXPLICIT_ACCESS_A pExplicitAccess,
IN LPSTR pTrusteeName,
IN PTRUSTEE_A pTrustee,
IN DWORD AccessPermissions,
IN ACCESS_MODE AccessMode,
IN DWORD Inheritance);
VOID
WINAPI
BuildImpersonateExplicitAccessWithNameW(
IN OUT PEXPLICIT_ACCESS_W pExplicitAccess,
IN LPWSTR pTrusteeName,
IN PTRUSTEE_W pTrustee,
IN DWORD AccessPermissions,
IN ACCESS_MODE AccessMode,
IN DWORD Inheritance);
#ifdef UNICODE
#define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameW
#else
#define BuildImpersonateExplicitAccessWithName BuildImpersonateExplicitAccessWithNameA
#endif // !UNICODE
VOID
WINAPI
BuildTrusteeWithNameA( IN OUT PTRUSTEE_A pTrustee,
IN LPSTR pName);
VOID
WINAPI
BuildTrusteeWithNameW( IN OUT PTRUSTEE_W pTrustee,
IN LPWSTR pName);
#ifdef UNICODE
#define BuildTrusteeWithName BuildTrusteeWithNameW
#else
#define BuildTrusteeWithName BuildTrusteeWithNameA
#endif // !UNICODE
VOID
WINAPI
BuildImpersonateTrusteeA( IN OUT PTRUSTEE_A pTrustee,
IN PTRUSTEE_A pImpersonateTrustee);
VOID
WINAPI
BuildImpersonateTrusteeW( IN OUT PTRUSTEE_W pTrustee,
IN PTRUSTEE_W pImpersonateTrustee);
#ifdef UNICODE
#define BuildImpersonateTrustee BuildImpersonateTrusteeW
#else
#define BuildImpersonateTrustee BuildImpersonateTrusteeA
#endif // !UNICODE
VOID
WINAPI
BuildTrusteeWithSidA( IN OUT PTRUSTEE_A pTrustee,
IN PSID pSid);
VOID
WINAPI
BuildTrusteeWithSidW( IN OUT PTRUSTEE_W pTrustee,
IN PSID pSid);
#ifdef UNICODE
#define BuildTrusteeWithSid BuildTrusteeWithSidW
#else
#define BuildTrusteeWithSid BuildTrusteeWithSidA
#endif // !UNICODE
LPSTR
WINAPI
GetTrusteeNameA( IN PTRUSTEE_A pTrustee);
LPWSTR
WINAPI
GetTrusteeNameW( IN PTRUSTEE_W pTrustee);
#ifdef UNICODE
#define GetTrusteeName GetTrusteeNameW
#else
#define GetTrusteeName GetTrusteeNameA
#endif // !UNICODE
TRUSTEE_TYPE
WINAPI
GetTrusteeTypeA( IN PTRUSTEE_A pTrustee);
TRUSTEE_TYPE
WINAPI
GetTrusteeTypeW( IN PTRUSTEE_W pTrustee);
#ifdef UNICODE
#define GetTrusteeType GetTrusteeTypeW
#else
#define GetTrusteeType GetTrusteeTypeA
#endif // !UNICODE
TRUSTEE_FORM
WINAPI
GetTrusteeFormA( IN PTRUSTEE_A pTrustee);
TRUSTEE_FORM
WINAPI
GetTrusteeFormW( IN PTRUSTEE_W pTrustee);
#ifdef UNICODE
#define GetTrusteeForm GetTrusteeFormW
#else
#define GetTrusteeForm GetTrusteeFormA
#endif // !UNICODE
MULTIPLE_TRUSTEE_OPERATION
WINAPI
GetMultipleTrusteeOperationA( IN PTRUSTEE_A pTrustee);
MULTIPLE_TRUSTEE_OPERATION
WINAPI
GetMultipleTrusteeOperationW( IN PTRUSTEE_W pTrustee);
#ifdef UNICODE
#define GetMultipleTrusteeOperation GetMultipleTrusteeOperationW
#else
#define GetMultipleTrusteeOperation GetMultipleTrusteeOperationA
#endif // !UNICODE
PTRUSTEE_A
WINAPI
GetMultipleTrusteeA( IN PTRUSTEE_A pTrustee);
PTRUSTEE_W
WINAPI
GetMultipleTrusteeW( IN PTRUSTEE_W pTrustee);
#ifdef UNICODE
#define GetMultipleTrustee GetMultipleTrusteeW
#else
#define GetMultipleTrustee GetMultipleTrusteeA
#endif // !UNICODE
#if(_WIN32_WINNT >= 0x0500)
//----------------------------------------------------------------------------
//
// NT5 APIs
//
//----------------------------------------------------------------------------
DWORD
WINAPI
GetNamedSecurityInfoExA(IN LPCSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCSTR lpProvider,
IN LPCSTR lpProperty,
OUT PACTRL_ACCESSA *ppAccessList,
OUT PACTRL_AUDITA *ppAuditList,
OUT LPSTR *lppOwner,
OUT LPSTR *lppGroup);
DWORD
WINAPI
GetNamedSecurityInfoExW(IN LPCWSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCWSTR lpProvider,
IN LPCWSTR lpProperty,
OUT PACTRL_ACCESSW *ppAccessList,
OUT PACTRL_AUDITW *ppAuditList,
OUT LPWSTR *lppOwner,
OUT LPWSTR *lppGroup);
#ifdef UNICODE
#define GetNamedSecurityInfoEx GetNamedSecurityInfoExW
#else
#define GetNamedSecurityInfoEx GetNamedSecurityInfoExA
#endif // !UNICODE
DWORD
WINAPI
SetNamedSecurityInfoExA(IN LPCSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCSTR lpProvider,
IN PACTRL_ACCESSA pAccessList,
IN PACTRL_AUDITA pAuditList,
IN LPSTR lpOwner,
IN LPSTR lpGroup,
IN PACTRL_OVERLAPPED pOverlapped);
DWORD
WINAPI
SetNamedSecurityInfoExW(IN LPCWSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCWSTR lpProvider,
IN PACTRL_ACCESSW pAccessList,
IN PACTRL_AUDITW pAuditList,
IN LPWSTR lpOwner,
IN LPWSTR lpGroup,
IN PACTRL_OVERLAPPED pOverlapped);
#ifdef UNICODE
#define SetNamedSecurityInfoEx SetNamedSecurityInfoExW
#else
#define SetNamedSecurityInfoEx SetNamedSecurityInfoExA
#endif // !UNICODE
DWORD
WINAPI
GetSecurityInfoExA(IN HANDLE hObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCSTR lpProvider,
IN LPCSTR lpProperty,
OUT PACTRL_ACCESSA *ppAccessList,
OUT PACTRL_AUDITA *ppAuditList,
OUT LPSTR *lppOwner,
OUT LPSTR *lppGroup);
DWORD
WINAPI
GetSecurityInfoExW(IN HANDLE hObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCWSTR lpProvider,
IN LPCWSTR lpProperty,
OUT PACTRL_ACCESSW *ppAccessList,
OUT PACTRL_AUDITW *ppAuditList,
OUT LPWSTR *lppOwner,
OUT LPWSTR *lppGroup);
#ifdef UNICODE
#define GetSecurityInfoEx GetSecurityInfoExW
#else
#define GetSecurityInfoEx GetSecurityInfoExA
#endif // !UNICODE
DWORD
WINAPI
SetSecurityInfoExA(IN HANDLE hObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCSTR lpProvider,
IN PACTRL_ACCESSA pAccessList,
IN PACTRL_AUDITA pAuditList,
IN LPSTR lpOwner,
IN LPSTR lpGroup,
OUT PACTRL_OVERLAPPED pOverlapped);
DWORD
WINAPI
SetSecurityInfoExW(IN HANDLE hObject,
IN SE_OBJECT_TYPE ObjectType,
IN SECURITY_INFORMATION SecurityInfo,
IN LPCWSTR lpProvider,
IN PACTRL_ACCESSW pAccessList,
IN PACTRL_AUDITW pAuditList,
IN LPWSTR lpOwner,
IN LPWSTR lpGroup,
OUT PACTRL_OVERLAPPED pOverlapped);
#ifdef UNICODE
#define SetSecurityInfoEx SetSecurityInfoExW
#else
#define SetSecurityInfoEx SetSecurityInfoExA
#endif // !UNICODE
DWORD
WINAPI
ConvertAccessToSecurityDescriptorA(IN PACTRL_ACCESSA pAccessList,
IN PACTRL_AUDITA pAuditList,
IN LPCSTR lpOwner,
IN LPCSTR lpGroup,
OUT PSECURITY_DESCRIPTOR *ppSecDescriptor);
DWORD
WINAPI
ConvertAccessToSecurityDescriptorW(IN PACTRL_ACCESSW pAccessList,
IN PACTRL_AUDITW pAuditList,
IN LPCWSTR lpOwner,
IN LPCWSTR lpGroup,
OUT PSECURITY_DESCRIPTOR *ppSecDescriptor);
#ifdef UNICODE
#define ConvertAccessToSecurityDescriptor ConvertAccessToSecurityDescriptorW
#else
#define ConvertAccessToSecurityDescriptor ConvertAccessToSecurityDescriptorA
#endif // !UNICODE
DWORD
WINAPI
ConvertSecurityDescriptorToAccessA(IN HANDLE hObject,
IN SE_OBJECT_TYPE ObjectType,
IN PSECURITY_DESCRIPTOR pSecDescriptor,
OUT PACTRL_ACCESSA *ppAccessList,
OUT PACTRL_AUDITA *ppAuditList,
OUT LPSTR *lppOwner,
OUT LPSTR *lppGroup);
DWORD
WINAPI
ConvertSecurityDescriptorToAccessW(IN HANDLE hObject,
IN SE_OBJECT_TYPE ObjectType,
IN PSECURITY_DESCRIPTOR pSecDescriptor,
OUT PACTRL_ACCESSW *ppAccessList,
OUT PACTRL_AUDITW *ppAuditList,
OUT LPWSTR *lppOwner,
OUT LPWSTR *lppGroup);
#ifdef UNICODE
#define ConvertSecurityDescriptorToAccess ConvertSecurityDescriptorToAccessW
#else
#define ConvertSecurityDescriptorToAccess ConvertSecurityDescriptorToAccessA
#endif // !UNICODE
DWORD
WINAPI
ConvertSecurityDescriptorToAccessNamedA(IN LPCSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN PSECURITY_DESCRIPTOR pSecDescriptor,
OUT PACTRL_ACCESSA *ppAccessList,
OUT PACTRL_AUDITA *ppAuditList,
OUT LPSTR *lppOwner,
OUT LPSTR *lppGroup);
DWORD
WINAPI
ConvertSecurityDescriptorToAccessNamedW(IN LPCWSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN PSECURITY_DESCRIPTOR pSecDescriptor,
OUT PACTRL_ACCESSW *ppAccessList,
OUT PACTRL_AUDITW *ppAuditList,
OUT LPWSTR *lppOwner,
OUT LPWSTR *lppGroup);
#ifdef UNICODE
#define ConvertSecurityDescriptorToAccessNamed ConvertSecurityDescriptorToAccessNamedW
#else
#define ConvertSecurityDescriptorToAccessNamed ConvertSecurityDescriptorToAccessNamedA
#endif // !UNICODE
DWORD
WINAPI
SetEntriesInAccessListA(IN ULONG cEntries,
IN PACTRL_ACCESS_ENTRYA pAccessEntryList,
IN ACCESS_MODE AccessMode,
IN LPCSTR lpProperty,
IN PACTRL_ACCESSA pOldList,
OUT PACTRL_ACCESSA *ppNewList);
DWORD
WINAPI
SetEntriesInAccessListW(IN ULONG cEntries,
IN PACTRL_ACCESS_ENTRYW pAccessEntryList,
IN ACCESS_MODE AccessMode,
IN LPCWSTR lpProperty,
IN PACTRL_ACCESSW pOldList,
OUT PACTRL_ACCESSW *ppNewList);
#ifdef UNICODE
#define SetEntriesInAccessList SetEntriesInAccessListW
#else
#define SetEntriesInAccessList SetEntriesInAccessListA
#endif // !UNICODE
DWORD
WINAPI
SetEntriesInAuditListA(IN ULONG cEntries,
IN PACTRL_ACCESS_ENTRYA pAccessEntryList,
IN ACCESS_MODE AccessMode,
IN LPCSTR lpProperty,
IN PACTRL_AUDITA pOldList,
OUT PACTRL_AUDITA *ppNewList);
DWORD
WINAPI
SetEntriesInAuditListW(IN ULONG cEntries,
IN PACTRL_ACCESS_ENTRYW pAccessEntryList,
IN ACCESS_MODE AccessMode,
IN LPCWSTR lpProperty,
IN PACTRL_AUDITW pOldList,
OUT PACTRL_AUDITW *ppNewList);
#ifdef UNICODE
#define SetEntriesInAuditList SetEntriesInAuditListW
#else
#define SetEntriesInAuditList SetEntriesInAuditListA
#endif // !UNICODE
DWORD
WINAPI
TrusteeAccessToObjectA(IN LPCSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN LPCSTR lpProvider,
IN PTRUSTEE_A pTrustee,
IN ULONG cEntries,
IN OUT PTRUSTEE_ACCESSA pTrusteeAccess);
DWORD
WINAPI
TrusteeAccessToObjectW(IN LPCWSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN LPCWSTR lpProvider,
IN PTRUSTEE_W pTrustee,
IN ULONG cEntries,
IN OUT PTRUSTEE_ACCESSW pTrusteeAccess);
#ifdef UNICODE
#define TrusteeAccessToObject TrusteeAccessToObjectW
#else
#define TrusteeAccessToObject TrusteeAccessToObjectA
#endif // !UNICODE
DWORD
WINAPI
GetOverlappedAccessResults( IN PACTRL_OVERLAPPED pOverlapped,
IN BOOL fWaitForCompletion,
OUT PDWORD pResult,
OUT PULONG pcItemsProcessed OPTIONAL);
DWORD
WINAPI
CancelOverlappedAccess(IN PACTRL_OVERLAPPED pOverlapped);
DWORD
WINAPI
GetAccessPermissionsForObjectA(IN LPCSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN LPCSTR lpObjType,
IN LPCSTR lpProvider,
OUT PULONG pcEntries,
OUT PACTRL_ACCESS_INFOA *ppAccessInfoList,
OUT PULONG pcRights,
OUT PACTRL_CONTROL_INFOA *ppRightsList,
OUT PULONG pfAccessFlags);
DWORD
WINAPI
GetAccessPermissionsForObjectW(IN LPCWSTR lpObject,
IN SE_OBJECT_TYPE ObjectType,
IN LPCWSTR lpObjType,
IN LPCWSTR lpProvider,
OUT PULONG pcEntries,
OUT PACTRL_ACCESS_INFOW *ppAccessInfoList,
OUT PULONG pcRights,
OUT PACTRL_CONTROL_INFOW *ppRightsList,
OUT PULONG pfAccessFlags);
#ifdef UNICODE
#define GetAccessPermissionsForObject GetAccessPermissionsForObjectW
#else
#define GetAccessPermissionsForObject GetAccessPermissionsForObjectA
#endif // !UNICODE
//
// Temporary requirement for the technology preview, no longer required
//
#define AccProvInit(err)
#endif /* _WIN32_WINNT >= 0x0500 */
#ifdef __cplusplus
}
#endif
#endif // __ACCESS_CONTROL_API__
@@ -0,0 +1,143 @@
// --aclcls.h------------------------------------------------------------------
//
// Interface to library: aclcls.
//
// Copyright 1986 - 1998 Microsoft Corporation. All rights reserved.
//
// ----------------------------------------------------------------------------
#if !defined(_ACLCLS_H_)
#define _ACLCLS_H_
// $$--IExchangeFolderACLs-----------------------------------------------------
//
// Definition of interface for folder ACLs class CFolderACLs.
//
// ----------------------------------------------------------------------------
#undef INTERFACE
#define INTERFACE IExchangeFolderACLs
// Manifest for cursor position indicating we are at the end of the ACLs table.
#define ACL_PAST_END ((LONG) -1)
// Special ACL positions. The special ACL's at these position may not be
// deleted, and there are also special rules (coming from Exchange) with
// regard to how rights will be modified. Also, other ACL's may not be inserted
// at these positions.
#define ACL_POS_DEFAULT ((LONG) 0)
#define ACL_POS_CREATOR ((LONG) 1)
DECLARE_INTERFACE_(IExchangeFolderACLs, IUnknown)
{
#ifndef NO_BASEINTERFACE_FUNCS
/* IUnknown methods */
STDMETHOD(QueryInterface)(
THIS_
REFIID riid,
LPVOID FAR * ppvObj
) PURE;
STDMETHOD_(ULONG, AddRef)(
THIS
) PURE;
STDMETHOD_(ULONG, Release)(
THIS
) PURE;
#endif
/* IExchangeFolderACLs methods */
STDMETHOD(HrDelete)(
THIS
) PURE;
STDMETHOD(HrGet)(
THIS_
LPLONG lplRights,
LPSTR FAR * lppszDisplayName,
ULONG FAR * lpcbentryid,
LPENTRYID FAR * lppentryid
) PURE;
STDMETHOD(HrInsert)(
THIS_
LONG lRights,
LPSTR lpszDisplayName,
ULONG cbentryid,
LPENTRYID lpentryid,
LPLONG lplRights
) PURE;
STDMETHOD(HrModify)(
THIS_
LONG lRights,
LPLONG lplRights
) PURE;
STDMETHOD(HrSeek)(
THIS_
LONG lPos
) PURE;
STDMETHOD(HrTell)(
THIS_
LPLONG lplPos
) PURE;
};
// $$--LPFOLDERACLS------------------------------------------------------------
//
// Pointer to IExchangeFolderACLs interface.
//
// ----------------------------------------------------------------------------
typedef IExchangeFolderACLs FAR * LPFOLDERACLS;
//
// Helper functions defined in module ACLCLS.
//
// $--HrFolderACLsOpen---------------------------------------------------------
//
// DESCRIPTION: Get a pointer to an object which implements the
// IExchangeFolderACLs interface defined in aclcls.h.
//
// INPUT:
//
// [lpSession] -- Pointer to MAPI session.
// [lpMDB] -- Pointer to message store containing folder.
// [cbentryid] -- Number of bytes in folder's entry identifier.
// [lpentryid] -- Folder's entry identifier.
//
// OUTPUT:
//
// [lppFolderACLs] -- Pointer to object which supports interface.
// NULL if none.
//
// RETURNS: NOERROR if successful;
// E_INVALIDARG if bad input;
// E_OUTOFMEMORY if not enough memory;
// E_NOINTERFACE if acl table does not exist on folder;
// E_FAIL otherwise.
//
//-----------------------------------------------------------------------------
STDAPI
HrFolderACLsOpen( // RETURNS: HRESULT
IN LPMAPISESSION lpSession, // MAPI session pointer
IN LPMDB lpMDB, // MAPI MDB store ptr
IN ULONG cbentryid, // # bytes in entry ID
IN LPENTRYID lpentryid, // entry ID ptr
OUT LPFOLDERACLS FAR * lppFolderACLs // IExchangeFolderACLs ptr ptr
);
#endif
@@ -0,0 +1,24 @@
// --aclsid.h------------------------------------------------------------------
//
// Defines the identifiers for the ACLs Class.
//
// Identifiers defined:
//
// LIBID_aclcls
//
// IID_IExchangeFolderACLs
//
// Copyright 1986 - 1998 Microsoft Corporation. All rights reserved.
//
// ----------------------------------------------------------------------------
#if !defined(_ACLSID_H_)
#define _ACLSID_H_
// Identifiers for the ExchangeFolderACLs foundation class.
DEFINE_GUID(LIBID_aclcls, 0xad2495a3, 0xa76c, 0x11ce, 0xb9, 0x67, 0x0, 0x20, 0xaf, 0x52, 0x52, 0x44);
DEFINE_GUID(IID_IExchangeFolderACLs, 0xad2495a6, 0xa76c, 0x11ce, 0xb9, 0x67, 0x0, 0x20, 0xaf, 0x52, 0x52, 0x44);
#endif
@@ -0,0 +1,7 @@
/*****************************************************************************/
/* Now a stub file to allow back compatibility, real file is winmgt.h */
/*****************************************************************************/
#include <winmgt.h>

@@ -0,0 +1,6 @@
/*****************************************************************************/
/* Now a stub file to allow back compatibility, real file now wincsv.h */
/*****************************************************************************/
#include <wincsv.h>

@@ -0,0 +1,23 @@
//==========================================================================;
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
// Copyright (c) 1992 - 1997 Microsoft Corporation. All Rights Reserved.
//
//--------------------------------------------------------------------------;
//
// Contains the data formats for the transfer of VfW4 filters
// via the clipboard
#define CFSTR_VFW_FILTERLIST "Video for Windows 4 Filters"
typedef struct tagVFW_FILTERLIST{
UINT cFilters; // number of CLSIDs in aClsId
CLSID aClsId[1]; // ClsId of each filter
} VFW_FILTERLIST;
@@ -0,0 +1,58 @@
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996
//
// File: ads.h
//
// Contents: Master include file for Ole Ds
//
// Notes: All Ole Ds client applications must include this file. This
// provides access to the primary Ole Ds interfaces, the error
// codes, and function prototypes for the Ole Ds helper apis.
//
//----------------------------------------------------------------------------
//
// Interface definitions and well known GUIDS for Ole Ds
//
#include "iads.h"
//
// Helper function prototypes for Ole Ds
//
#include "adshlp.h"
//
// Error codes for Ole Ds - generated from ..\..\errmsg
//
#include "adserr.h"
//
// Globally accessible GUIDS
//
#include "adsiid.h"
//
// Status codes for ads objects
//
#include "adssts.h"
//
// Schema class names and other schema related definitions
//
#include "adsnms.h"
//
// Definitions in the OLE DB provider for ADSI
//
#include "adsdb.h"
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,150 @@
// ==========================================================================
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
// Copyright (c) 1992 - 1997 Microsoft Corporation. All Rights Reserved.
//
// --------------------------------------------------------------------------
//
// ACTIVEX.RCV
//
// Description:
// This file defines the version resource used for the application.
//
// NOTE: All strings MUST have an explicit \0 for termination!
//
// For a complete description of the Version Resource, search the
// Microsoft Developer's Network (MSDN) CD-ROM for 'version resource'.
//
// ==========================================================================
#ifndef _ACTIVEX_RCV_
#define _ACTIVEX_RCV_
#ifdef WIN32
#include <winver.h>
#else
#include <ver.h>
#endif
#ifndef _ACTIVEX_VER_
#include <activex.ver>
#endif
//
// Version flags.
//
// OFFICIAL and FINAL should be defined when appropriate.
//
#ifndef OFFICIAL
#define VER_PRIVATEBUILD VS_FF_PRIVATEBUILD
#else
#define VER_PRIVATEBUILD 0
#endif
#ifndef FINAL
#define VER_PRERELEASE VS_FF_PRERELEASE
#else
#define VER_PRERELEASE 0
#endif
#ifdef DEBUG
#define VER_DEBUG VS_FF_DEBUG
#else
#define VER_DEBUG 0
#endif
//
// Version definitions
//
#define VERSION_RES_FLAGSMASK 0x0030003FL
#define VERSION_RES_FLAGS (VER_PRIVATEBUILD|VER_PRERELEASE|VER_DEBUG)
#ifdef WIN32
#define VERSION_RES_OS VOS_NT_WINDOWS32
#else
#define VERSION_RES_OS VOS_DOS_WINDOWS16
#endif
#ifndef VERSION_RES_TYPE
#define VERSION_RES_TYPE VFT_DLL
#endif
#ifndef VERSION_RES_SUBTYPE
#define VERSION_RES_SUBTYPE VFT2_UNKNOWN
#endif
#define VERSION_RES_LANGUAGE 0x409
#ifdef UNICODE
#define VERSION_RES_CHARSET 1200
#else
#define VERSION_RES_CHARSET 1252
#endif
#ifndef VERSION_RES_ACTIVEX
#define VERSION_RES_ACTIVEX "Filter dll\0"
#endif
#ifdef AMOVIE_SELF_REGISTER
#ifndef OLE_SELF_REGISTER
#define OLE_SELF_REGISTER
#endif
#endif
#ifdef OLE_SELF_REGISTER
#ifdef AMOVIE_SELF_REGISTER
#define VERSION_RES_SELFREGISTER "AM20\0"
#else
#define VERSION_RES_SELFREGISTER "\0"
#endif
#endif
//
// Version resource
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION VERSION_RES_MAJOR_VER, VERSION_RES_MINOR_VER, 0, VERSION_RES_BUILD
PRODUCTVERSION VERSION_RES_MAJOR_VER, VERSION_RES_MINOR_VER, 0, VERSION_RES_BUILD
FILEFLAGSMASK VERSION_RES_FLAGSMASK
FILEFLAGS VERSION_RES_FLAGS
FILEOS VERSION_RES_OS
FILETYPE VERSION_RES_TYPE
FILESUBTYPE VERSION_RES_SUBTYPE
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904E4"
BEGIN
VALUE "CompanyName", VERSION_RES_COMPANY_NAME
VALUE "FileDescription", VERSION_RES_BIN_DESCRIPTION
VALUE "FileVersion", VERSION_RES_STRING
VALUE "InternalName", VERSION_RES_BIN_NAME
VALUE "LegalCopyright", VERSION_RES_COPYRIGHT
VALUE "OriginalFilename", VERSION_RES_BIN_NAME
VALUE "ProductName", VERSION_RES_PRODUCT_NAME
#ifdef DEBUG
VALUE "ProductVersion", VERSION_RES_STRING_D
#else
VALUE "ProductVersion", VERSION_RES_STRING
#endif
VALUE "ActiveMovie", VERSION_RES_ACTIVEX
#ifdef OLE_SELF_REGISTER
VALUE "OLESelfRegister", VERSION_RES_SELFREGISTER
#endif
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", VERSION_RES_LANGUAGE, VERSION_RES_CHARSET
END
END
#endif
// _ACTIVEX_RCV_
@@ -0,0 +1,62 @@
//===========================================================================
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
// Copyright (c) 1997 Microsoft Corporation. All Rights Reserved.
//
//---------------------------------------------------------------------------
//
// ACTIVEX.VER
//
// Description:
// Common versioning information for ACTIVEX binaries
//
// Notes:
//
//===========================================================================
#ifndef _ACTIVEX_VER_
#define _ACTIVEX_VER_
// NOTE! all string resources that will be used in ACTIVEX.RCV for the
// version resource information *MUST* have an explicit \0 terminator!
#define VERSION_RES_MAJOR_VER 1
#define VERSION_RES_MINOR_VER 0
#define VERSION_RES_BUILD 0
#define VERSION_RES_STRING_D "1.00 (Debug)\0"
#define VERSION_RES_STRING "1.00\0"
#define VERSION_RES_PRODUCT_NAME "MyProductName\0"
#define VERSION_RES_COMPANY_NAME "MyCompanyName\0"
#define VERSION_RES_COPYRIGHT "Copyright (C) 1997 MyCompanyName.\0"
// The following defines are required on a file-by-file basis
//
// #define VERSION_RES_BIN_NAME "sample.ax\0"
// #define VERSION_RES_BIN_DESCRIPTION "Sample Filter\0"
//
// Also required, if you don't want the defaults, are
//
// #define VERSION_RES_ACTIVEX "Filter dll\0" (the default value)
//
// A string defining the type of component.
//
// #define VERSION_RES_TYPE VFT_DLL (default)
// VFT_EXE
// VFT_VXD
// VFT_DRV
// VFT_UNKNOWN
//
// #define VERSION_RES_SUBTYPE VFT2_UNKNOWN (default)
// VFT2_DRV_INSTALLABLE
// VFT2_DRV_SOUND
//
// See winver.h for further details
#endif
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,494 @@
//+---------------------------------------------------------------------------
//
// (C) Copyright 1996 Microsoft Corporation. All Rights Reserved.
//
// Contents: Declarations for ActiveX Scripting host applications and script engines
//
//----------------------------------------------------------------------------
cpp_quote( "//=--------------------------------------------------------------------------=")
cpp_quote( "// ActivScp.h")
cpp_quote( "//=--------------------------------------------------------------------------=")
cpp_quote( "// (C) Copyright 1996 Microsoft Corporation. All Rights Reserved.")
cpp_quote( "//")
cpp_quote( "// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
cpp_quote( "// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
cpp_quote( "// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
cpp_quote( "// PARTICULAR PURPOSE.")
cpp_quote( "//=--------------------------------------------------------------------------=")
cpp_quote( "//")
cpp_quote("#pragma comment(lib,\"uuid.lib\")")
cpp_quote( "//")
cpp_quote( "// Declarations for ActiveX Scripting host applications and script engines.")
cpp_quote( "//")
cpp_quote( "")
cpp_quote( "#ifndef __ActivScp_h")
cpp_quote( "#define __ActivScp_h")
cpp_quote( "")
#ifndef DO_NO_IMPORTS
import "ocidl.idl";
import "oleidl.idl";
import "oaidl.idl";
#endif
cpp_quote( "/* GUIDs")
cpp_quote( " ********/")
cpp_quote( "")
cpp_quote( "#ifndef _NO_SCRIPT_GUIDS")
cpp_quote( "// {F0B7A1A1-9847-11cf-8F20-00805F2CD064}")
cpp_quote( "DEFINE_GUID(CATID_ActiveScript, 0xf0b7a1a1, 0x9847, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
cpp_quote( "")
cpp_quote( "// {F0B7A1A2-9847-11cf-8F20-00805F2CD064}")
cpp_quote( "DEFINE_GUID(CATID_ActiveScriptParse, 0xf0b7a1a2, 0x9847, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
cpp_quote( "")
cpp_quote( "// {BB1A2AE1-A4F9-11cf-8F20-00805F2CD064}")
cpp_quote( "DEFINE_GUID(IID_IActiveScript, 0xbb1a2ae1, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
cpp_quote( "")
cpp_quote( "// {BB1A2AE2-A4F9-11cf-8F20-00805F2CD064}")
cpp_quote( "DEFINE_GUID(IID_IActiveScriptParse, 0xbb1a2ae2, 0xa4f9, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
cpp_quote( "")
cpp_quote( "// {1CFF0050-6FDD-11d0-9328-00A0C90DCAA9}")
cpp_quote( "DEFINE_GUID(IID_IActiveScriptParseProcedureOld, 0x1cff0050, 0x6fdd, 0x11d0, 0x93, 0x28, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
cpp_quote( "")
cpp_quote( "// {AA5B6A80-B834-11d0-932F-00A0C90DCAA9}")
cpp_quote( "DEFINE_GUID(IID_IActiveScriptParseProcedure, 0xaa5b6a80, 0xb834, 0x11d0, 0x93, 0x2f, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
cpp_quote( "")
cpp_quote( "// {DB01A1E3-A42B-11cf-8F20-00805F2CD064}")
cpp_quote( "DEFINE_GUID(IID_IActiveScriptSite, 0xdb01a1e3, 0xa42b, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
cpp_quote( "")
cpp_quote( "// {D10F6761-83E9-11cf-8F20-00805F2CD064}")
cpp_quote( "DEFINE_GUID(IID_IActiveScriptSiteWindow, 0xd10f6761, 0x83e9, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
cpp_quote( "")
cpp_quote( "// {539698A0-CDCA-11CF-A5EB-00AA0047A063}")
cpp_quote( "DEFINE_GUID(IID_IActiveScriptSiteInterruptPoll, 0x539698a0, 0xcdca, 0x11cf, 0xa5, 0xeb, 0x00, 0xaa, 0x00, 0x47, 0xa0, 0x63);")
cpp_quote( "")
cpp_quote( "// {EAE1BA61-A4ED-11cf-8F20-00805F2CD064}")
cpp_quote( "DEFINE_GUID(IID_IActiveScriptError, 0xeae1ba61, 0xa4ed, 0x11cf, 0x8f, 0x20, 0x0, 0x80, 0x5f, 0x2c, 0xd0, 0x64);")
cpp_quote( "")
cpp_quote( "// {63CDBCB0-C1B1-11d0-9336-00A0C90DCAA9}")
cpp_quote( "DEFINE_GUID(IID_IBindEventHandler, 0x63cdbcb0, 0xc1b1, 0x11d0, 0x93, 0x36, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
cpp_quote( "")
cpp_quote( "// {B8DA6310-E19B-11d0-933C-00A0C90DCAA9}")
cpp_quote( "DEFINE_GUID(IID_IActiveScriptStats, 0xb8da6310, 0xe19b, 0x11d0, 0x93, 0x3c, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
cpp_quote( "")
cpp_quote( "#endif // _NO_SCRIPT_GUIDS")
cpp_quote( "")
cpp_quote( "// Constants used by ActiveX Scripting:")
cpp_quote( "//")
cpp_quote( "")
cpp_quote( "/* IActiveScript::AddNamedItem() input flags */")
cpp_quote( "")
cpp_quote( "#define SCRIPTITEM_ISVISIBLE 0x00000002")
cpp_quote( "#define SCRIPTITEM_ISSOURCE 0x00000004")
cpp_quote( "#define SCRIPTITEM_GLOBALMEMBERS 0x00000008")
cpp_quote( "#define SCRIPTITEM_ISPERSISTENT 0x00000040")
cpp_quote( "#define SCRIPTITEM_CODEONLY 0x00000200")
cpp_quote( "#define SCRIPTITEM_NOCODE 0x00000400")
cpp_quote( "")
cpp_quote( "#define SCRIPTITEM_ALL_FLAGS (SCRIPTITEM_ISSOURCE | \\")
cpp_quote( " SCRIPTITEM_ISVISIBLE | \\")
cpp_quote( " SCRIPTITEM_ISPERSISTENT | \\")
cpp_quote( " SCRIPTITEM_GLOBALMEMBERS | \\")
cpp_quote( " SCRIPTITEM_NOCODE | \\")
cpp_quote( " SCRIPTITEM_CODEONLY)")
cpp_quote( "")
cpp_quote( "/* IActiveScript::AddTypeLib() input flags */")
cpp_quote( "")
cpp_quote( "#define SCRIPTTYPELIB_ISCONTROL 0x00000010")
cpp_quote( "#define SCRIPTTYPELIB_ISPERSISTENT 0x00000040")
cpp_quote( "#define SCRIPTTYPELIB_ALL_FLAGS (SCRIPTTEXT_ISCONTROL | SCRIPTTYPELIB_ISPERSISTENT)")
cpp_quote( "")
cpp_quote( "/* IActiveScriptParse::AddScriptlet() and IActiveScriptParse::ParseScriptText() input flags */")
cpp_quote( "")
cpp_quote( "#define SCRIPTTEXT_DELAYEXECUTION 0x00000001")
cpp_quote( "#define SCRIPTTEXT_ISVISIBLE 0x00000002")
cpp_quote( "#define SCRIPTTEXT_ISEXPRESSION 0x00000020")
cpp_quote( "#define SCRIPTTEXT_ISPERSISTENT 0x00000040")
cpp_quote( "#define SCRIPTTEXT_HOSTMANAGESSOURCE 0x00000080")
cpp_quote( "#define SCRIPTTEXT_ALL_FLAGS (SCRIPTTEXT_DELAYEXECUTION | \\")
cpp_quote( " SCRIPTTEXT_ISVISIBLE | \\")
cpp_quote( " SCRIPTTEXT_ISEXPRESSION | \\")
cpp_quote( " SCRIPTTEXT_ISPERSISTENT | \\")
cpp_quote( " SCRIPTTEXT_HOSTMANAGESSOURCE)")
cpp_quote( "")
cpp_quote( "/* IActiveScriptParseProcedure::ParseProcedureText() input flags */")
cpp_quote( "")
cpp_quote( "#define SCRIPTPROC_HOSTMANAGESSOURCE 0x00000080")
cpp_quote( "#define SCRIPTPROC_IMPLICIT_THIS 0x00000100")
cpp_quote( "#define SCRIPTPROC_IMPLICIT_PARENTS 0x00000200")
cpp_quote( "#define SCRIPTPROC_ALL_FLAGS (SCRIPTPROC_HOSTMANAGESSOURCE | \\")
cpp_quote( " SCRIPTPROC_IMPLICIT_THIS | \\")
cpp_quote( " SCRIPTPROC_IMPLICIT_PARENTS)")
cpp_quote( "")
cpp_quote( "/* IActiveScriptSite::GetItemInfo() input flags */")
cpp_quote( "")
cpp_quote( "#define SCRIPTINFO_IUNKNOWN 0x00000001")
cpp_quote( "#define SCRIPTINFO_ITYPEINFO 0x00000002")
cpp_quote( "#define SCRIPTINFO_ALL_FLAGS (SCRIPTINFO_IUNKNOWN | \\")
cpp_quote( " SCRIPTINFO_ITYPEINFO)")
cpp_quote( "")
cpp_quote( "/* IActiveScript::Interrupt() Flags */")
cpp_quote( "")
cpp_quote( "#define SCRIPTINTERRUPT_DEBUG 0x00000001")
cpp_quote( "#define SCRIPTINTERRUPT_RAISEEXCEPTION 0x00000002")
cpp_quote( "#define SCRIPTINTERRUPT_ALL_FLAGS (SCRIPTINTERRUPT_DEBUG | \\")
cpp_quote( " SCRIPTINTERRUPT_RAISEEXCEPTION)")
cpp_quote( "")
cpp_quote( "/* IActiveScriptStats::GetStat() values */")
cpp_quote( "")
cpp_quote( "#define SCRIPTSTAT_STATEMENT_COUNT 1")
cpp_quote( "#define SCRIPTSTAT_INSTRUCTION_COUNT 2")
cpp_quote( "#define SCRIPTSTAT_INTSTRUCTION_TIME 3")
cpp_quote( "#define SCRIPTSTAT_TOTAL_TIME 4")
cpp_quote( "")
cpp_quote( "/* script state values */")
cpp_quote( "")
typedef enum tagSCRIPTSTATE {
SCRIPTSTATE_UNINITIALIZED = 0,
SCRIPTSTATE_INITIALIZED = 5,
SCRIPTSTATE_STARTED = 1,
SCRIPTSTATE_CONNECTED = 2,
SCRIPTSTATE_DISCONNECTED = 3,
SCRIPTSTATE_CLOSED = 4,
} SCRIPTSTATE ;
cpp_quote( "")
cpp_quote( "/* script thread state values */")
cpp_quote( "")
typedef enum tagSCRIPTTHREADSTATE {
SCRIPTTHREADSTATE_NOTINSCRIPT = 0,
SCRIPTTHREADSTATE_RUNNING = 1,
} SCRIPTTHREADSTATE ;
cpp_quote( "")
cpp_quote( "/* Thread IDs */")
cpp_quote( "")
typedef DWORD SCRIPTTHREADID;
cpp_quote( "")
cpp_quote( "#define SCRIPTTHREADID_CURRENT ((SCRIPTTHREADID)-1)")
cpp_quote( "#define SCRIPTTHREADID_BASE ((SCRIPTTHREADID)-2)")
cpp_quote( "#define SCRIPTTHREADID_ALL ((SCRIPTTHREADID)-3)")
cpp_quote( "")
cpp_quote( "/* Structures */")
cpp_quote( "")
cpp_quote( "/* Interfaces")
cpp_quote( " *************/")
cpp_quote( "")
interface IActiveScriptSite;
interface IActiveScriptSiteWindow;
interface IActiveScript;
interface IActiveScriptParse;
interface IActiveScriptParseProcedure;
interface IActiveScriptError;
cpp_quote( "")
[
object,
uuid(DB01A1E3-A42B-11cf-8F20-00805F2CD064),
pointer_default(unique)
]
interface IActiveScriptSite : IUnknown
{
HRESULT GetLCID(
[out] LCID *plcid);
HRESULT GetItemInfo(
[in] LPCOLESTR pstrName,
[in] DWORD dwReturnMask,
[out] IUnknown **ppiunkItem,
[out] ITypeInfo **ppti
);
HRESULT GetDocVersionString(
[out] BSTR *pbstrVersion
);
HRESULT OnScriptTerminate(
[in] const VARIANT *pvarResult,
[in] const EXCEPINFO *pexcepinfo
);
HRESULT OnStateChange(
[in] SCRIPTSTATE ssScriptState
);
HRESULT OnScriptError(
[in] IActiveScriptError *pscripterror
);
HRESULT OnEnterScript(void);
HRESULT OnLeaveScript(void);
}
[
object,
uuid(EAE1BA61-A4ED-11cf-8F20-00805F2CD064),
pointer_default(unique)
]
interface IActiveScriptError : IUnknown
{
HRESULT GetExceptionInfo(
[out] EXCEPINFO *pexcepinfo
);
HRESULT GetSourcePosition(
[out] DWORD *pdwSourceContext,
[out] ULONG *pulLineNumber,
[out] LONG *plCharacterPosition // -1 --> unknown
);
HRESULT GetSourceLineText(
[out] BSTR *pbstrSourceLine
);
}
[
object,
uuid(D10F6761-83E9-11cf-8F20-00805F2CD064),
pointer_default(unique)
]
interface IActiveScriptSiteWindow : IUnknown
{
HRESULT GetWindow(
[out] HWND *phwnd
);
HRESULT EnableModeless(
[in] BOOL fEnable
);
}
[
object,
uuid(539698A0-CDCA-11CF-A5EB-00AA0047A063),
pointer_default(unique)
]
interface IActiveScriptSiteInterruptPoll : IUnknown
{
HRESULT QueryContinue();
}
cpp_quote( "typedef IActiveScriptSite *PIActiveScriptSite;")
[
object,
uuid(BB1A2AE1-A4F9-11cf-8F20-00805F2CD064),
pointer_default(unique)
]
interface IActiveScript : IUnknown
{
HRESULT SetScriptSite(
[in] IActiveScriptSite *pass
);
HRESULT GetScriptSite(
[in] REFIID riid,
[out, iid_is(riid)] void **ppvObject
);
HRESULT SetScriptState(
[in] SCRIPTSTATE ss
);
HRESULT GetScriptState(
[out] SCRIPTSTATE *pssState
);
HRESULT Close(void);
HRESULT AddNamedItem(
[in] LPCOLESTR pstrName,
[in] DWORD dwFlags
);
HRESULT AddTypeLib(
[in] REFGUID rguidTypeLib,
[in] DWORD dwMajor,
[in] DWORD dwMinor,
[in] DWORD dwFlags
);
HRESULT GetScriptDispatch(
[in] LPCOLESTR pstrItemName,
[out] IDispatch **ppdisp
);
HRESULT GetCurrentScriptThreadID(
[out] SCRIPTTHREADID *pstidThread
);
HRESULT GetScriptThreadID(
[in] DWORD dwWin32ThreadId,
[out] SCRIPTTHREADID *pstidThread
);
HRESULT GetScriptThreadState(
[in] SCRIPTTHREADID stidThread,
[out] SCRIPTTHREADSTATE *pstsState
);
HRESULT InterruptScriptThread(
[in] SCRIPTTHREADID stidThread,
[in] const EXCEPINFO *pexcepinfo,
[in] DWORD dwFlags
);
HRESULT Clone(
[out] IActiveScript **ppscript
);
}
cpp_quote( "typedef IActiveScript *PIActiveScript;")
[
object,
uuid(BB1A2AE2-A4F9-11cf-8F20-00805F2CD064),
pointer_default(unique)
]
interface IActiveScriptParse : IUnknown
{
HRESULT InitNew(void);
HRESULT AddScriptlet(
[in] LPCOLESTR pstrDefaultName,
[in] LPCOLESTR pstrCode,
[in] LPCOLESTR pstrItemName,
[in] LPCOLESTR pstrSubItemName,
[in] LPCOLESTR pstrEventName,
[in] LPCOLESTR pstrDelimiter,
[in] DWORD dwSourceContextCookie,
[in] ULONG ulStartingLineNumber,
[in] DWORD dwFlags,
[out] BSTR *pbstrName,
[out] EXCEPINFO *pexcepinfo
);
HRESULT ParseScriptText(
[in] LPCOLESTR pstrCode,
[in] LPCOLESTR pstrItemName,
[in] IUnknown *punkContext,
[in] LPCOLESTR pstrDelimiter,
[in] DWORD dwSourceContextCookie,
[in] ULONG ulStartingLineNumber,
[in] DWORD dwFlags,
[out] VARIANT *pvarResult,
[out] EXCEPINFO *pexcepinfo
);
}
cpp_quote( "")
cpp_quote( "typedef IActiveScriptParse *PIActiveScriptParse;")
cpp_quote( "")
[
object,
uuid(1CFF0050-6FDD-11d0-9328-00A0C90DCAA9),
pointer_default(unique)
]
interface IActiveScriptParseProcedureOld : IUnknown
{
HRESULT ParseProcedureText(
[in] LPCOLESTR pstrCode,
[in] LPCOLESTR pstrFormalParams,
[in] LPCOLESTR pstrItemName,
[in] IUnknown *punkContext,
[in] LPCOLESTR pstrDelimiter,
[in] DWORD dwSourceContextCookie,
[in] ULONG ulStartingLineNumber,
[in] DWORD dwFlags,
[out] IDispatch **ppdisp
);
}
[
object,
uuid(AA5B6A80-B834-11d0-932F-00A0C90DCAA9),
pointer_default(unique)
]
interface IActiveScriptParseProcedure : IUnknown
{
HRESULT ParseProcedureText(
[in] LPCOLESTR pstrCode,
[in] LPCOLESTR pstrFormalParams,
[in] LPCOLESTR pstrProcedureName,
[in] LPCOLESTR pstrItemName,
[in] IUnknown *punkContext,
[in] LPCOLESTR pstrDelimiter,
[in] DWORD dwSourceContextCookie,
[in] ULONG ulStartingLineNumber,
[in] DWORD dwFlags,
[out] IDispatch **ppdisp
);
}
[
object,
uuid(63CDBCB0-C1B1-11d0-9336-00A0C90DCAA9),
pointer_default(unique)
]
interface IBindEventHandler : IUnknown
{
HRESULT BindHandler(
[in] LPCOLESTR pstrEvent,
[in] IDispatch *pdisp
);
}
[
object,
uuid(B8DA6310-E19B-11d0-933C-00A0C90DCAA9),
pointer_default(unique)
]
interface IActiveScriptStats : IUnknown
{
HRESULT GetStat(
[in] DWORD stid,
[out] ULONG *pluHi,
[out] ULONG *pluLo
);
HRESULT GetStatEx(
[in] REFGUID guid,
[out] ULONG *pluHi,
[out] ULONG *pluLo
);
HRESULT ResetStats(void);
}
cpp_quote( "")
cpp_quote( "#endif // __ActivScp_h")
cpp_quote( "")
@@ -0,0 +1,76 @@
// --addrlkup.h-----------------------------------------------------------------
//
// Header file for address mapping functions.
//
// Copyright 1986 - 1998 Microsoft Corporation. All Rights Reserved.
// -----------------------------------------------------------------------------
#if !defined(_ADDRLKUP_H)
#define _ADDRLKUP_H
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
//$--HrFindExchangeGlobalAddressList-------------------------------------------------
// Returns the entry ID of the global address list container in the address
// book.
// -----------------------------------------------------------------------------
HRESULT HrFindExchangeGlobalAddressList( // RETURNS: return code
IN LPADRBOOK lpAdrBook, // address book pointer
OUT ULONG *lpcbeid, // pointer to count of bytes in entry ID
OUT LPENTRYID *lppeid); // pointer to entry ID pointer
//$--HrGWResolveAddress--------------------------------------------------------
// Returns the entry ID for the recipient identified by a given address.
// -----------------------------------------------------------------------------
HRESULT HrGWResolveAddressW( // RETURNS: return code
IN LPABCONT lpGalABCont, // pointer to GAL container
IN LPCWSTR lpszAddress, // pointer to proxy address
OUT BOOL *lpfMapiRecip, // MAPI recipient
OUT ULONG *lpcbEntryID, // count of bytes in entry ID
OUT LPENTRYID *lppEntryID); // pointer to entry ID
HRESULT HrGWResolveAddressA( // RETURNS: return code
IN LPABCONT lpGalABCont, // pointer to GAL container
IN LPCSTR lpszAddress, // pointer to proxy address
OUT BOOL *lpfMapiRecip, // MAPI recipient
OUT ULONG *lpcbEntryID, // count of bytes in entry ID
OUT LPENTRYID *lppEntryID); // pointer to entry ID
#ifdef UNICODE
#define HrGWResolveAddress HrGWResolveAddressW
#else
#define HrGWResolveAddress HrGWResolveAddressA
#endif
//$--HrGWResolveProxy----------------------------------------------------------
// Returns the address of a specified type for the recipient identified by
// a given entry ID.
// -----------------------------------------------------------------------------
HRESULT HrGWResolveProxyW( // RETURNS: return code
IN LPADRBOOK lpAdrBook, // pointer to address book
IN ULONG cbeid, // count of bytes in the entry ID
IN LPENTRYID lpeid, // pointer to the entry ID
IN LPCWSTR lpszAddrType, // pointer to the address type
OUT BOOL * lpfMapiRecip, // MAPI recipient
OUT LPWSTR * lppszAddress); // pointer to the address pointer
HRESULT HrGWResolveProxyA( // RETURNS: return code
IN LPADRBOOK lpAdrBook, // pointer to address book
IN ULONG cbeid, // count of bytes in the entry ID
IN LPENTRYID lpeid, // pointer to the entry ID
IN LPCSTR lpszAddrType, // pointer to the address type
OUT BOOL * lpfMapiRecip, // MAPI recipient
OUT LPSTR * lppszAddress); // pointer to the address pointer
#ifdef UNICODE
#define HrGWResolveProxy HrGWResolveProxyW
#else
#define HrGWResolveProxy HrGWResolveProxyA
#endif
#ifdef __cplusplus
}
#endif
#endif /* _ADDRLKUP_H */
@@ -0,0 +1,539 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 3.03.0110 */
/* at Mon Nov 03 15:42:56 1997
*/
/* Compiler settings for .\admex.idl:
Oi (OptLev=i0), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: allocation ref
*/
//@@MIDL_FILE_HEADING( )
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __admex_h__
#define __admex_h__
#ifdef __cplusplus
extern "C"{
#endif
/* Forward Declarations */
#ifndef __IMSAdminReplication_FWD_DEFINED__
#define __IMSAdminReplication_FWD_DEFINED__
typedef interface IMSAdminReplication IMSAdminReplication;
#endif /* __IMSAdminReplication_FWD_DEFINED__ */
#ifndef __IMSAdminCryptoCapabilities_FWD_DEFINED__
#define __IMSAdminCryptoCapabilities_FWD_DEFINED__
typedef interface IMSAdminCryptoCapabilities IMSAdminCryptoCapabilities;
#endif /* __IMSAdminCryptoCapabilities_FWD_DEFINED__ */
/* header files for imported files */
#include "unknwn.h"
#include "objidl.h"
#include "ocidl.h"
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * );
/****************************************
* Generated header for interface: __MIDL_itf_admex_0000
* at Mon Nov 03 15:42:56 1997
* using MIDL 3.03.0110
****************************************/
/* [local] */
/*++
Copyright (c) 1997 Microsoft Corporation
Module Name: admex.h
Admin Extension Objects Interfaces
--*/
#ifndef _ADMEX_IADM_
#define _ADMEX_IADM_
DEFINE_GUID(IID_IMSAdminReplication, 0xc804d980, 0xebec, 0x11d0, 0xa6, 0xa0, 0x0,0xa0, 0xc9, 0x22, 0xe7, 0x52);
DEFINE_GUID(IID_IMSAdminCryptoCapabilities, 0x78b64540, 0xf26d, 0x11d0, 0xa6, 0xa3, 0x0,0xa0, 0xc9, 0x22, 0xe7, 0x52);
DEFINE_GUID(CLSID_MSCryptoAdmEx, 0x9f0bd3a0, 0xec01, 0x11d0, 0xa6, 0xa0, 0x0,0xa0, 0xc9, 0x22, 0xe7, 0x52);
/*
The Replication Interface
*/
extern RPC_IF_HANDLE __MIDL_itf_admex_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_admex_0000_v0_0_s_ifspec;
#ifndef __IMSAdminReplication_INTERFACE_DEFINED__
#define __IMSAdminReplication_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: IMSAdminReplication
* at Mon Nov 03 15:42:56 1997
* using MIDL 3.03.0110
****************************************/
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMSAdminReplication;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c804d980-ebec-11d0-a6a0-00a0c922e752")
IMSAdminReplication : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetSignature(
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize) = 0;
virtual HRESULT STDMETHODCALLTYPE Propagate(
/* [in] */ DWORD dwBufferSize,
/* [size_is][in] */ unsigned char __RPC_FAR *pszBuffer) = 0;
virtual HRESULT STDMETHODCALLTYPE Propagate2(
/* [in] */ DWORD dwBufferSize,
/* [size_is][in] */ unsigned char __RPC_FAR *pszBuffer,
/* [in] */ DWORD dwSignatureMismatch) = 0;
virtual HRESULT STDMETHODCALLTYPE Serialize(
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize) = 0;
virtual HRESULT STDMETHODCALLTYPE DeSerialize(
/* [in] */ DWORD dwBufferSize,
/* [size_is][in] */ unsigned char __RPC_FAR *pbBuffer) = 0;
};
#else /* C style interface */
typedef struct IMSAdminReplicationVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IMSAdminReplication __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IMSAdminReplication __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IMSAdminReplication __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSignature )(
IMSAdminReplication __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Propagate )(
IMSAdminReplication __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][in] */ unsigned char __RPC_FAR *pszBuffer);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Propagate2 )(
IMSAdminReplication __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][in] */ unsigned char __RPC_FAR *pszBuffer,
/* [in] */ DWORD dwSignatureMismatch);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Serialize )(
IMSAdminReplication __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *DeSerialize )(
IMSAdminReplication __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][in] */ unsigned char __RPC_FAR *pbBuffer);
END_INTERFACE
} IMSAdminReplicationVtbl;
interface IMSAdminReplication
{
CONST_VTBL struct IMSAdminReplicationVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IMSAdminReplication_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IMSAdminReplication_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IMSAdminReplication_Release(This) \
(This)->lpVtbl -> Release(This)
#define IMSAdminReplication_GetSignature(This,dwBufferSize,pbBuffer,pdwMDRequiredBufferSize) \
(This)->lpVtbl -> GetSignature(This,dwBufferSize,pbBuffer,pdwMDRequiredBufferSize)
#define IMSAdminReplication_Propagate(This,dwBufferSize,pszBuffer) \
(This)->lpVtbl -> Propagate(This,dwBufferSize,pszBuffer)
#define IMSAdminReplication_Propagate2(This,dwBufferSize,pszBuffer,dwSignatureMismatch) \
(This)->lpVtbl -> Propagate2(This,dwBufferSize,pszBuffer,dwSignatureMismatch)
#define IMSAdminReplication_Serialize(This,dwBufferSize,pbBuffer,pdwMDRequiredBufferSize) \
(This)->lpVtbl -> Serialize(This,dwBufferSize,pbBuffer,pdwMDRequiredBufferSize)
#define IMSAdminReplication_DeSerialize(This,dwBufferSize,pbBuffer) \
(This)->lpVtbl -> DeSerialize(This,dwBufferSize,pbBuffer)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IMSAdminReplication_GetSignature_Proxy(
IMSAdminReplication __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize);
void __RPC_STUB IMSAdminReplication_GetSignature_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMSAdminReplication_Propagate_Proxy(
IMSAdminReplication __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][in] */ unsigned char __RPC_FAR *pszBuffer);
void __RPC_STUB IMSAdminReplication_Propagate_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMSAdminReplication_Propagate2_Proxy(
IMSAdminReplication __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][in] */ unsigned char __RPC_FAR *pszBuffer,
/* [in] */ DWORD dwSignatureMismatch);
void __RPC_STUB IMSAdminReplication_Propagate2_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMSAdminReplication_Serialize_Proxy(
IMSAdminReplication __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize);
void __RPC_STUB IMSAdminReplication_Serialize_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMSAdminReplication_DeSerialize_Proxy(
IMSAdminReplication __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][in] */ unsigned char __RPC_FAR *pbBuffer);
void __RPC_STUB IMSAdminReplication_DeSerialize_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IMSAdminReplication_INTERFACE_DEFINED__ */
/****************************************
* Generated header for interface: __MIDL_itf_admex_0213
* at Mon Nov 03 15:42:56 1997
* using MIDL 3.03.0110
****************************************/
/* [local] */
/*
The Crypto capabilities Interface
*/
extern RPC_IF_HANDLE __MIDL_itf_admex_0213_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_admex_0213_v0_0_s_ifspec;
#ifndef __IMSAdminCryptoCapabilities_INTERFACE_DEFINED__
#define __IMSAdminCryptoCapabilities_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: IMSAdminCryptoCapabilities
* at Mon Nov 03 15:42:56 1997
* using MIDL 3.03.0110
****************************************/
/* [unique][uuid][object] */
EXTERN_C const IID IID_IMSAdminCryptoCapabilities;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("78b64540-f26d-11d0-a6a3-00a0c922e752")
IMSAdminCryptoCapabilities : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetProtocols(
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize) = 0;
virtual HRESULT STDMETHODCALLTYPE GetMaximumCipherStrength(
/* [out] */ LPDWORD pdwMaximumCipherStrength) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRootCertificates(
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSupportedAlgs(
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ DWORD __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize) = 0;
virtual HRESULT STDMETHODCALLTYPE SetCAList(
/* [in] */ DWORD dwBufferSize,
/* [size_is][in] */ unsigned char __RPC_FAR *pbBuffer) = 0;
};
#else /* C style interface */
typedef struct IMSAdminCryptoCapabilitiesVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IMSAdminCryptoCapabilities __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IMSAdminCryptoCapabilities __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IMSAdminCryptoCapabilities __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetProtocols )(
IMSAdminCryptoCapabilities __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMaximumCipherStrength )(
IMSAdminCryptoCapabilities __RPC_FAR * This,
/* [out] */ LPDWORD pdwMaximumCipherStrength);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetRootCertificates )(
IMSAdminCryptoCapabilities __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSupportedAlgs )(
IMSAdminCryptoCapabilities __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ DWORD __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetCAList )(
IMSAdminCryptoCapabilities __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][in] */ unsigned char __RPC_FAR *pbBuffer);
END_INTERFACE
} IMSAdminCryptoCapabilitiesVtbl;
interface IMSAdminCryptoCapabilities
{
CONST_VTBL struct IMSAdminCryptoCapabilitiesVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IMSAdminCryptoCapabilities_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IMSAdminCryptoCapabilities_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IMSAdminCryptoCapabilities_Release(This) \
(This)->lpVtbl -> Release(This)
#define IMSAdminCryptoCapabilities_GetProtocols(This,dwBufferSize,pbBuffer,pdwMDRequiredBufferSize) \
(This)->lpVtbl -> GetProtocols(This,dwBufferSize,pbBuffer,pdwMDRequiredBufferSize)
#define IMSAdminCryptoCapabilities_GetMaximumCipherStrength(This,pdwMaximumCipherStrength) \
(This)->lpVtbl -> GetMaximumCipherStrength(This,pdwMaximumCipherStrength)
#define IMSAdminCryptoCapabilities_GetRootCertificates(This,dwBufferSize,pbBuffer,pdwMDRequiredBufferSize) \
(This)->lpVtbl -> GetRootCertificates(This,dwBufferSize,pbBuffer,pdwMDRequiredBufferSize)
#define IMSAdminCryptoCapabilities_GetSupportedAlgs(This,dwBufferSize,pbBuffer,pdwMDRequiredBufferSize) \
(This)->lpVtbl -> GetSupportedAlgs(This,dwBufferSize,pbBuffer,pdwMDRequiredBufferSize)
#define IMSAdminCryptoCapabilities_SetCAList(This,dwBufferSize,pbBuffer) \
(This)->lpVtbl -> SetCAList(This,dwBufferSize,pbBuffer)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IMSAdminCryptoCapabilities_GetProtocols_Proxy(
IMSAdminCryptoCapabilities __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize);
void __RPC_STUB IMSAdminCryptoCapabilities_GetProtocols_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMSAdminCryptoCapabilities_GetMaximumCipherStrength_Proxy(
IMSAdminCryptoCapabilities __RPC_FAR * This,
/* [out] */ LPDWORD pdwMaximumCipherStrength);
void __RPC_STUB IMSAdminCryptoCapabilities_GetMaximumCipherStrength_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMSAdminCryptoCapabilities_GetRootCertificates_Proxy(
IMSAdminCryptoCapabilities __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ unsigned char __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize);
void __RPC_STUB IMSAdminCryptoCapabilities_GetRootCertificates_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMSAdminCryptoCapabilities_GetSupportedAlgs_Proxy(
IMSAdminCryptoCapabilities __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][out] */ DWORD __RPC_FAR *pbBuffer,
/* [out] */ DWORD __RPC_FAR *pdwMDRequiredBufferSize);
void __RPC_STUB IMSAdminCryptoCapabilities_GetSupportedAlgs_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMSAdminCryptoCapabilities_SetCAList_Proxy(
IMSAdminCryptoCapabilities __RPC_FAR * This,
/* [in] */ DWORD dwBufferSize,
/* [size_is][in] */ unsigned char __RPC_FAR *pbBuffer);
void __RPC_STUB IMSAdminCryptoCapabilities_SetCAList_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IMSAdminCryptoCapabilities_INTERFACE_DEFINED__ */
/****************************************
* Generated header for interface: __MIDL_itf_admex_0214
* at Mon Nov 03 15:42:56 1997
* using MIDL 3.03.0110
****************************************/
/* [local] */
#endif
extern RPC_IF_HANDLE __MIDL_itf_admex_0214_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_admex_0214_v0_0_s_ifspec;
/* Additional Prototypes for ALL interfaces */
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif
@@ -0,0 +1,302 @@
/**********************************************************************/
/** Microsoft Exchange **/
/** Copyright (c) Microsoft Corp. 1986-1996. All Rights Reserved. **/
/**********************************************************************/
/*
adminext.h
This file contains the common messages, manifests, types, and
structures used by Microsoft Exchange Administration Extensions.
NOTE: You must include windows.h and mapix.h before this file.
*/
#ifndef _ADMINEXT_H_
#define _ADMINEXT_H_
#ifdef __cplusplus
extern "C"
{
#endif
// Miscellanous definitions
#define ADMIN_ExtensionAPIVersion 0x000d
// List of dialog page IDs passed to the ShowPage proc in the
// extension DLL for approval.
// for gateway objects (ObjID_GW)
#define iddGWGeneral 3020
#define iddGWPermissions 3500
#define iddGWSchedule 4011
#define iddGWConnected_Sites 4020
#define iddGWAddress_Space 3021
#define iddGWDelivery_Restrictions 4008
#define iddGWAdvanced 3022
#define iddGWImportContainer 3063
#define iddGWExportContainers 3067
#define iddGWDiagLogSetting 4030
// for mail agent objects (ObjID_MA)
#define iddMAGeneral 4028
#define iddMAPermissions 3500
#define iddMADistributionList 4090
#define iddMAEMailAddresses 4014
#define iddMADeliveryRestrictions 4008
#define iddMADeliveryOptions 4007
#define iddMASecurity 4051
#define iddMACustomAttributes 4022
#define iddMASchedule 4011
#define iddMAAdvanced 4040
typedef struct _ADMIN_ObjectInfo
{
LPWSTR szComputerName; // Computer on which the gateway runs, when applicable
LPWSTR szDistinguishedName; // of the object administered
LPWSTR szDNHomeMDB; // Distinguished name of the server running the home message database
LPWSTR szDNHomeMTA; // Distinguished name of the server running the home message transport agent
LCID lcid; // locale ID
UINT uObjectID; // object ID code
HFONT hfontDialog; // font handle
} ADMIN_ObjectInfo;
// Object ID codes
#define ObjID_UK 0 // UnKnown
#define ObjID_DSFirst 1 // first DS DOC
#define ObjID_EP 2 // Enterprise
#define ObjID_DM 3 // Domain (Site)
#define ObjID_CT 4 // Container
#define ObjID_SV 5 // Server
// Recipients
#define ObjID_MR 6 // Mail Recipients
#define ObjID_MB 7 // Mailbox
#define ObjID_DL 8 // Distribution List
#define ObjID_RR 9 // Remote Recipient
#define ObjID_PF 10 // Public Folder
#define ObjID_MA 11 // Mail Agent
// Connections
#define ObjID_GW 12 // Gateway
#define ObjID_MGW 13 // Special Gateway for Goalline
#define ObjID_DXAREQ 14 // DXA requestor, was Remote DXA
#define ObjID_DXASV 15 // DXA Site server
#define ObjID_DXACONN 16 // DXA Server Connection
#define ObjID_ISC 17 // Site Connector
#define ObjID_LNKRAS 18 // Dynamic RAS Connector
#define ObjID_LNKTCP 19 // TCP (RFC1006) X.400 Connector
#define ObjID_LNKTP4 20 // TP4 X.400 Connector
#define ObjID_LNKX25 21 // X.25 X.400 Connector
#define ObjID_DRC 22 // Directory Replication Connector
// Server Objects
#define ObjID_MTA 23 // MTA
#define ObjID_DSA 24 // Directory
#define ObjID_MDB 26 // Private Information Store
#define ObjID_PMDB 27 // Public Information Store
#define ObjID_LDXA 28 // Local DXA
#define ObjID_SAA 29 // System Attendant
#define ObjID_STKRAS 30 // RAS MTA Transport Stack
#define ObjID_STKTCP 31 // TCP (RFC1006) MTA Transport Stack
#define ObjID_STKTP4 32 // TP4 MTA Transport Stack
#define ObjID_STKX25 33 // X.25 MTA Transport Stack
// Monitor Configurations
#define ObjID_MSV 34 // Monitoring Server Configuration (DS)
#define ObjID_MLK 35 // Monitoring Link Configuration (DS)
// Templates
#define ObjID_ATP 36 // Address Type
#define ObjID_ATL 37 // Address Template
#define ObjID_DTL 38 // Display Template
// Schema Objects
#define ObjID_Schema 39 // The Schema container (DMD)
#define ObjID_SchemaAttr 40 // Schema Attribute
#define ObjID_SchemaObj 41 // Schema Object
// Site Configurations
#define ObjID_ENC 42 // Encryption Configuration
#define ObjID_SADR 43 // Site Addressing
#define ObjID_SDSA 44 // Site Directory Configuration
#define ObjID_SMDB 45 // Site Information Store Configuration
#define ObjID_SMTA 46 // Site MTA Configuration
#define ObjID_ADDIN 47 // Add-In
#define ObjID_EXT 48 // Admin Extension
typedef struct _ADMIN_SheetInfo
{
HINSTANCE hInstance;
UINT iddDialog; // To pass to MAKEINTRESOURCE()
DLGPROC lpfnDlgProc;
UINT idsName; // For LoadString()
LPARAM lParam; // Passed to DlgProc on WM_INITDIALOG
LANGID langid; // language ID of dialog to be loaded
} ADMIN_SheetInfo;
/*********************************************************************************/
/*********************************************************************************/
// Functions implemented by the Extension DLL
// and called by the Microsoft Exchange Administrator program.
typedef BOOL (PASCAL * PADMIN_InstallExtension) (ADMIN_ObjectInfo * poi);
typedef BOOL (PASCAL * PADMIN_DeinstallExtension) (ADMIN_ObjectInfo * poi);
typedef BOOL (PASCAL * PADMIN_ShowPage) (UINT iddAdminPage);
typedef INT (PASCAL * PADMIN_StartPage) (void);
typedef BOOL (PASCAL * PADMIN_InitSheet)
( ADMIN_ObjectInfo * poi,
ULONG fFlags,
ADMIN_SheetInfo ** ppsi,
UINT * pcsi,
VOID ** ppvExtensionData);
// PADMIN_InitSheet definitions for fFlags
#define fxfReadOnly 0x00000001
// high byte of fFlags reserved as private for extension dll writers to use as they see fit.
#define MaskExtensionPrivateFlags 0x00ffffff
/*********************************************************************************/
/*********************************************************************************/
// FSetActive() typedef BOOL (PASCAL * PADMIN_RefreshDisplay) (VOID * pvExtensionData, HWND hwnd);
typedef BOOL (PASCAL * PADMIN_HasHelp) (VOID * pvExtensionData, HWND hwnd);
typedef VOID (PASCAL * PADMIN_DoHelp) (VOID * pvExtensionData, HWND hwnd);
typedef BOOL (PASCAL * PADMIN_SaveData) (VOID * pvExtensionData, HWND hwnd);
typedef BOOL (PASCAL * PADMIN_CommitData) (VOID * pvExtensionData, HWND hwnd);
typedef VOID (PASCAL * PADMIN_DeinitSheet)
(VOID * pvExtensionData);
// The pointers in this structure (except pfnInitSheet) can be NULL
// if a pointer is null, no call is made.
typedef struct _ADMIN_ExtensionFunction
{
int nAPIVersion;
PADMIN_InstallExtension pfnInstallExtension;
PADMIN_DeinstallExtension pfnDeinstallExtension;
PADMIN_InitSheet pfnInitSheet;
PADMIN_ShowPage pfnShowPage;
PADMIN_StartPage pfnStartPage;
PADMIN_HasHelp pfnHasHelp;
PADMIN_DoHelp pfnDoHelp;
PADMIN_SaveData pfnSaveData;
PADMIN_CommitData pfnCommitData;
PADMIN_DeinitSheet pfnDeinitSheet;
} ADMIN_ExtensionFunction;
// Functions implemented by the Microsoft Exchange Administrator Program
// and called by the Extension DLL.
typedef RC (PASCAL * PADMIN_GetObjectDataSize)
(HWND hwnd, LPWSTR wszBlobName, UINT * pcb);
typedef RC (PASCAL * PADMIN_GetObjectData)
(HWND hwnd, LPWSTR wszBlobName, BYTE * pb, UINT cb);
typedef RC (PASCAL * PADMIN_SetObjectData)
(HWND hwnd, BYTE * pb, UINT cb, BOOL fNew);
// These 2 APIs take WCHAR *, NOT TCHAR!!!
// szServiceName is the SHORT name of the service.
typedef BOOL (PASCAL * PADMIN_AddService)
(HWND hwnd, LPWSTR wszServiceName);
typedef BOOL (PASCAL * PADMIN_RemoveService)
(HWND hwnd, LPWSTR wszServiceName);
typedef VOID (PASCAL * PADMIN_InfoHasChanged)
(HWND hwnd);
typedef VOID (PASCAL * PADMIN_SetIcon)
(HWND hwnd, int id);
typedef VOID (PASCAL * PADMIN_SetTitle)
(HWND hwnd, int id);
typedef BOOL (PASCAL * PADMIN_LoadDialogResource)
(HINSTANCE hinst, UINT iddDialog, LANGID langid, BYTE ** ppbDialog);
// *ppbDialog will be set to NULL after being freed in this call
typedef VOID (PASCAL * PADMIN_FreeDialogResource)
(BYTE ** ppbDialog);
/*
* psz is a pointer to an array of string pointers. The array is
* cstr elements long.
* Name 0: psz[0], etc.
* The extension is responsible for calling FreeNameList to reelease the memory
*/
typedef BOOL (PASCAL * PADMIN_GetNameList)
(HWND hwnd, int * pcstr, LPWSTR ** ppsz);
typedef void (PASCAL * PADMIN_FreeNameList)
(int cstr, LPWSTR * psz);
/*
* Admin will make a copy of the strings, so the extension can release the memory
* it allocated when the SetProxy call returns.
*/
typedef BOOL (PASCAL * PADMIN_SetNameList)
(HWND hwnd, int cstr, LPWSTR * psz);
// NOTE on both GetNameList and SetNameList: Admin will issue the error message if appropriate
typedef struct _ADMIN_AdministratorFunction
{
PADMIN_GetObjectDataSize pfnGetObjectDataSize;
PADMIN_GetObjectData pfnGetObjectData;
PADMIN_SetObjectData pfnSetObjectData;
PADMIN_AddService pfnAddService;
PADMIN_RemoveService pfnRemoveService;
PADMIN_InfoHasChanged pfnInfoHasChanged;
PADMIN_SetIcon pfnSetIcon;
PADMIN_SetTitle pfnSetTitle;
PADMIN_GetNameList pfnGetNameList;
PADMIN_FreeNameList pfnFreeNameList;
PADMIN_SetNameList pfnSetNameList;
PADMIN_LoadDialogResource pfnLoadDialogResource;
PADMIN_FreeDialogResource pfnFreeDialogResource;
} ADMIN_AdministratorFunction;
typedef struct _ADMIN_AdministratorConnections
{
IMAPISession * psesMapi;
IAddrBook * pab;
IABContainer * pabContainer;
} ADMIN_AdministratorConnections;
// Initialization function where the API is clarified.
typedef VOID (PASCAL * PADMIN_Initialize)
( ADMIN_AdministratorConnections * pac,
ADMIN_AdministratorFunction * pAdminFunction,
ADMIN_ExtensionFunction ** ppExtensionFunction);
#ifdef __cplusplus
}
#endif
#endif // #ifndef _ADMINEXT_H_

@@ -0,0 +1,90 @@
//--------------------------------------------------------------------
// Microsoft ADO
//
// (c) 1998 Microsoft Corporation. All Rights Reserved.
//
// @doc
//
// @module adoid.h | ADO Guids
//
// @devnote None
//--------------------------------------------------------------------
#ifndef _ADOID_H_
#define _ADOID_H_
#define DEFINE_ADOGUID(name, l) \
DEFINE_GUID(name, l, 0, 0x10, 0x80,0,0,0xAA,0,0x6D,0x2E,0xA4)
#define ADO_MAJOR 2 // major version of the ADO type library
#if (MDACVER >=21)
#define ADO_VERSION 2.1
#else
#define ADO_VERSION 2.0
#endif
// Type library
DEFINE_ADOGUID(LIBID_ADO20, 0x00000200);
DEFINE_ADOGUID(LIBID_ADOR20, 0x00000300);
// defined for backwards compatibility
#define LIBID_CADO10 LIBID_ADO20
#define LIBID_CADOR10 LIBID_ADOR20
// Error
DEFINE_ADOGUID(IID_IADOError, 0x00000500);
DEFINE_ADOGUID(IID_IADOErrors, 0x00000501);
// Property
DEFINE_ADOGUID(IID_IADOProperty, 0x00000503);
DEFINE_ADOGUID(IID_IADOProperties, 0x00000504);
// Field
DEFINE_ADOGUID(CLSID_CADOField, 0x0000053A);
DEFINE_ADOGUID(IID_IADOField15, 0x00000505);
DEFINE_ADOGUID(IID_IADOField, 0x0000054C);
DEFINE_ADOGUID(IID_IADOFields15, 0x00000506);
DEFINE_ADOGUID(IID_IADOFields, 0x0000054D);
// Command
DEFINE_ADOGUID(CLSID_CADOCommand, 0x00000507);
DEFINE_ADOGUID(IID_IADOCommand15, 0x00000508);
DEFINE_ADOGUID(IID_IADOCommand, 0x0000054E);
DEFINE_ADOGUID(IID_IADOCommands, 0x00000509);
// Parameter
DEFINE_ADOGUID(CLSID_CADOParameter, 0x0000050B);
DEFINE_ADOGUID(IID_IADOParameter, 0x0000050C);
DEFINE_ADOGUID(IID_IADOParameters, 0x0000050D);
//Recordset
DEFINE_ADOGUID(CLSID_CADORecordset, 0x00000535);
DEFINE_ADOGUID(IID_IADORecordset15, 0x0000050E);
DEFINE_ADOGUID(IID_IADORecordset, 0x0000054F);
DEFINE_ADOGUID(IID_IADORecordsets, 0x0000050F);
DEFINE_ADOGUID(IID_IADORecordsetConstruction, 0x00000283);
// Collections
DEFINE_ADOGUID(IID_IADOCollection, 0x00000512);
DEFINE_ADOGUID(IID_IADODynaCollection, 0x00000513);
// Connection
DEFINE_ADOGUID(CLSID_CADOConnection, 0x00000514);
DEFINE_ADOGUID(IID_IADOConnection15, 0x00000515);
DEFINE_ADOGUID(IID_IADOConnection, 0x00000550);
DEFINE_ADOGUID(IID_IADOConnectionConstruction15, 0x00000516);
DEFINE_ADOGUID(IID_IADOConnectionConstruction, 0x00000551);
DEFINE_ADOGUID(IID_IADOConnections, 0x00000518);
// events
// dispatch interfaces
DEFINE_ADOGUID(IID_IADORecordsetEvents, 0x00000266);
DEFINE_ADOGUID(IID_IADOConnectionEvents, 0x00000400);
// vtable interfaces
DEFINE_ADOGUID(IID_IADORecordsetEventsVt, 0x00000403);
DEFINE_ADOGUID(IID_IADOConnectionEventsVt, 0x00000402);
#endif // _ADOID_H_
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,753 @@
/****************** adomd.idl : IDL source for adomd.dll *****************/
#include "m_guid.h" // Machine generated
#include "m_help.inc" // Machine generated
#include "dispids.h"
// Forwards
interface ICatalog;
coclass Catalog;
interface ICellset;
coclass Cellset;
interface Cell;
interface Axis;
interface Position;
interface Member;
interface Level;
interface CubeDef;
interface Dimension;
interface Hierarchy;
interface Axes;
interface Positions;
interface Members;
interface CubeDefs;
interface Dimensions;
interface Hierarchies;
interface Levels;
#define UUIID_EnumMemberType uuid(000002AE-0000-0010-8000-00AA006D2EA4)
#define DISPID_COLLECT ( -8 )
#define DEFAULT_METHOD id(0)
#define CONNECTION_BASEDISPID 1
cpp_quote("#define TARGET_IS_NT40_OR_LATER 1")
[
uuid(22813728-8BD3-11D0-B4EF-00A0C9138CA4),
version(1.0),
helpstring("Microsoft ActiveX Data Objects (Multi-dimensional) 1.0 Library")
]
library ADOMD
{
importlib("stdole32.tlb");
importlib("msado15.dll");
/************************************ Enums **********************************************/
typedef [
UUIID_EnumMemberType
]
enum MemberTypeEnum {
[] adMemberUnknown = 0x0000,
[] adMemberRegular = 0x0001,
[] adMemberAll = 0x0002,
[] adMemberMeasure = 0x0003,
[] adMemberFormula = 0x0004
} MemberTypeEnum;
/******************************* Interfaces **********************************************/
[
object,
uuid(228136B1-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring("ICatalog Interface"),
pointer_default(unique)
]
interface ICatalog : IDispatch
{
import "oaidl.idl";
[
propget
]
HRESULT Name( [out, retval] BSTR *pbstr );
[
propputref
]
HRESULT ActiveConnection( [in] IDispatch *pconn );
[
propput
]
HRESULT ActiveConnection( [in] BSTR bstrConn );
[
propget
]
HRESULT ActiveConnection( [out, retval] IDispatch **ppConn );
[
propget,
DEFAULT_METHOD
]
HRESULT CubeDefs( [out, retval] CubeDefs **ppvObject );
};
//---------------------------------------------------------------------------------------------
[
object,
uuid(2281372A-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring("ICellset Interface"),
pointer_default(unique)
]
interface ICellset : IDispatch
{
import "oaidl.idl";
[
propget,
vararg,
DEFAULT_METHOD
]
HRESULT Item( [in] SAFEARRAY(VARIANT)* idx,
[out, retval] Cell **ppvObject );
[
]
HRESULT Open( [in, optional] VARIANT DataSource,
[in, optional] VARIANT ActiveConnection );
[
]
HRESULT Close();
[
propputref
]
HRESULT Source([in] IDispatch *pcmd);
[
propput
]
HRESULT Source( [in] BSTR bstrCmd );
[
propget
]
HRESULT Source( [out, retval] VARIANT *pvSource );
[
propputref
]
HRESULT ActiveConnection( [in] IDispatch *pconn );
[
propput
]
HRESULT ActiveConnection( [in] BSTR bstrConn );
[
propget
]
HRESULT ActiveConnection( [out, retval] IDispatch **ppConn );
[
propget
]
HRESULT State([out, retval] LONG *plState);
[
propget
]
HRESULT Axes( [out, retval] Axes **ppvObject );
[
propget
]
HRESULT FilterAxis( [out, retval] Axis **ppvObject );
[
propget
]
HRESULT Properties( [out, retval] ADODB.Properties **ppvObject );
};
//---------------------------------------------------------------------------------------------
[
object,
uuid(2281372E-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring("Cell Interface"),
pointer_default(unique)
]
interface Cell : IDispatch
{
import "oaidl.idl";
[
propget,
DEFAULT_METHOD
]
HRESULT Value( [out, retval] VARIANT *pvar );
[
propput
]
HRESULT Value( [in] VARIANT var );
[
propget
]
HRESULT Positions( [out, retval] Positions **ppvObject );
[
propget
]
HRESULT Properties( [out, retval] ADODB.Properties **ppvObject );
[
propget
]
HRESULT FormattedValue( [out, retval] BSTR *pbstr );
[
propput
]
HRESULT FormattedValue( [in] BSTR bstr );
[
propget
]
HRESULT Ordinal( [out, retval] long *pl );
};
//---------------------------------------------------------------------------------------------
[
object,
uuid(22813732-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring("Axis Interface"),
pointer_default(unique)
]
interface Axis : IDispatch
{
import "oaidl.idl";
[
propget
]
HRESULT Name( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT DimensionCount( [out, retval] long *pl );
[
propget,
DEFAULT_METHOD
]
HRESULT Positions( [out, retval] Positions **ppvObject );
[
propget
]
HRESULT Properties( [out, retval] ADODB.Properties **ppvObject );
};
//---------------------------------------------------------------------------------------------
[
object,
uuid(22813734-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring("Position Interface"),
pointer_default(unique)
]
interface Position : IDispatch
{
import "oaidl.idl";
[
propget
]
HRESULT Ordinal( [out, retval] long *pl );
[
propget,
DEFAULT_METHOD
]
HRESULT Members( [out, retval] Members **ppvObject );
};
//---------------------------------------------------------------------------------------------
[
object,
uuid(22813736-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring("Member Interface"),
pointer_default(unique)
]
interface Member : IDispatch
{
import "oaidl.idl";
[
propget
]
HRESULT Name( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT UniqueName( [out, retval] BSTR *pbstr );
[
propget,
DEFAULT_METHOD
]
HRESULT Caption( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT Description( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT Parent( [out, retval] Member **ppvObject );
[
propget
]
HRESULT LevelDepth( [out, retval] long *pl );
[
propget
]
HRESULT LevelName( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT Properties( [out, retval] ADODB.Properties **ppvObject );
[
propget
]
HRESULT Type( [out, retval] MemberTypeEnum *ptype );
[
propget
]
HRESULT ChildCount( [out, retval] long *pl );
[
propget
]
HRESULT DrilledDown( [out, retval] VARIANT_BOOL *pf );
[
propget
]
HRESULT ParentSameAsPrev( [out, retval] VARIANT_BOOL *pf );
[
propget
]
HRESULT Children( [out, retval] Members **ppvObject );
};
//---------------------------------------------------------------------------------------------
[
object,
uuid(2281373A-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring("Level Interface"),
pointer_default(unique)
]
interface Level : IDispatch
{
import "oaidl.idl";
[
propget
]
HRESULT Name( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT UniqueName( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT Caption( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT Description( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT Depth([out, retval] short *pw);
[
propget
]
HRESULT Properties( [out, retval] ADODB.Properties **ppvObject );
[
propget,
DEFAULT_METHOD
]
HRESULT Members( [out, retval] Members **ppvObject );
};
//---------------------------------------------------------------------------------------------
[
object,
uuid(2281373E-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring("CubeDef Interface"),
pointer_default(unique)
]
interface CubeDef : IDispatch
{
import "oaidl.idl";
[
propget
]
HRESULT Name( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT Description( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT Properties( [out, retval] ADODB.Properties **ppvObject );
[
propget,
DEFAULT_METHOD
]
HRESULT Dimensions( [out, retval] Dimensions **ppvObject );
};
//---------------------------------------------------------------------------------------------
[
object,
uuid(22813742-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring("Dimension Interface"),
pointer_default(unique)
]
interface Dimension : IDispatch
{
import "oaidl.idl";
[
propget
]
HRESULT Name( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT UniqueName( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT Description( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT Properties( [out, retval] ADODB.Properties **ppvObject );
[
propget,
DEFAULT_METHOD
]
HRESULT Hierarchies( [out, retval] Hierarchies **ppvObject );
};
//---------------------------------------------------------------------------------------------
[
object,
uuid(22813746-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring("Hierarchy Interface"),
pointer_default(unique)
]
interface Hierarchy : IDispatch
{
import "oaidl.idl";
[
propget
]
HRESULT Name( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT UniqueName( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT Description( [out, retval] BSTR *pbstr );
[
propget
]
HRESULT Properties( [out, retval] ADODB.Properties **ppvObject );
[
propget,
DEFAULT_METHOD
]
HRESULT Levels( [out, retval] Levels **ppvObject );
};
//---------------------------------------------------------------------------------------------
[
object,
uuid(22813751-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring("Collection Interface"),
pointer_default(unique)
]
interface MD_Collection : IDispatch
{
[
helpcontext(H_COLLECTION_Refresh),
helpstring(H_COLLECTION_Refresh_str)
]
HRESULT Refresh();
[
restricted,
id(-4)
]
HRESULT _NewEnum( [out, retval] IUnknown **ppvObject );
[
propget,
]
HRESULT Count( [out, retval]long *c );
}
//---------------------------------------------------------------------------------------------
[
object,
uuid(22813757-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring(H_PROPERTIES__str),
pointer_default(unique)
]
interface Members : MD_Collection
{
import "oaidl.idl"; //..
[
propget,
DEFAULT_METHOD
]
HRESULT Item(
[in] VARIANT Index,
[out, retval] Member **ppvObject
);
}
//---------------------------------------------------------------------------------------------
[
object,
uuid(22813758-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring(H_PROPERTIES__str),
pointer_default(unique)
]
interface Levels : MD_Collection
{
import "oaidl.idl"; //..
[
propget,
DEFAULT_METHOD
]
HRESULT Item(
[in] VARIANT Index,
[out, retval] Level **ppvObject
);
}
//---------------------------------------------------------------------------------------------
[
object,
uuid(22813759-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring(H_PROPERTIES__str),
pointer_default(unique)
]
interface Axes : MD_Collection
{
import "oaidl.idl"; //..
[
propget,
DEFAULT_METHOD
]
HRESULT Item(
[in] VARIANT Index,
[out, retval] Axis **ppvObject
);
}
//---------------------------------------------------------------------------------------------
[
object,
uuid(2281375A-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring(H_PROPERTIES__str),
pointer_default(unique)
]
interface Positions : MD_Collection
{
import "oaidl.idl"; //..
[
propget,
DEFAULT_METHOD
]
HRESULT Item(
[in] VARIANT Index,
[out, retval] Position **ppvObject
);
}
//---------------------------------------------------------------------------------------------
[
object,
uuid(2281375B-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring(H_PROPERTIES__str),
pointer_default(unique)
]
interface Hierarchies : MD_Collection
{
import "oaidl.idl"; //..
[
propget,
DEFAULT_METHOD
]
HRESULT Item(
[in] VARIANT Index,
[out, retval] Hierarchy **ppvObject
);
}
//---------------------------------------------------------------------------------------------
[
object,
uuid(2281375C-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring(H_PROPERTIES__str),
pointer_default(unique)
]
interface Dimensions : MD_Collection
{
import "oaidl.idl"; //..
[
propget,
DEFAULT_METHOD
]
HRESULT Item(
[in] VARIANT Index,
[out, retval] Dimension **ppvObject
);
}
//---------------------------------------------------------------------------------------------
[
object,
uuid(2281375D-8BD3-11D0-B4EF-00A0C9138CA4),
dual,
helpstring(H_PROPERTIES__str),
pointer_default(unique)
]
interface CubeDefs : MD_Collection
{
import "oaidl.idl"; //..
[
propget,
DEFAULT_METHOD
]
HRESULT Item(
[in] VARIANT Index,
[out, retval] CubeDef **ppvObject
);
}
/******************************* Coclasses **********************************************/
[
uuid(228136B0-8BD3-11D0-B4EF-00A0C9138CA4),
helpstring("ADOMD Catalog Class")
]
coclass Catalog
{
[default] interface ICatalog;
};
//---------------------------------------------------------------------------------------------
[
uuid(228136B8-8BD3-11D0-B4EF-00A0C9138CA4),
helpstring("ADOMD Cellset Class")
]
coclass Cellset
{
[default] interface ICellset;
};
};
@@ -0,0 +1,183 @@
/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
Abstract:
Router interface with IPX stack (to be replaced by WinSock 2.0)
Author:
Vadim Eydelman
Revision History:
--*/
#ifndef _IPX_ADAPTER_
#define _IPX_ADAPTER_
typedef struct _ADDRESS_RESERVED {
UCHAR Reserved[28];
} ADDRESS_RESERVED, *PADDRESS_RESERVED;
/*++
C r e a t e S o c k e t P o r t
Routine Description:
Creates port to communicate over IPX socket with direct access to NIC
Arguments:
Socket - IPX socket number to use (network byte order)
Return Value:
Handle to communication port that provides NIC oriented interface
to IPX stack. Returns INVALID_HANDLE_VALUE if port can not be opened
--*/
HANDLE WINAPI
CreateSocketPort (
IN USHORT Socket
);
/*++
D e l e t e S o c k e t P o r t
Routine Description:
Cancel all the outstandng requests and dispose of all the resources
allocated for communication port
Arguments:
Handle - Handle to communication port to be disposed of
Return Value:
NO_ERROR - success
Windows error code - operation failed
--*/
DWORD WINAPI
DeleteSocketPort (
IN HANDLE Handle
);
/*++
I p x R e c v P a c k e t
Routine Description:
Enqueue request to receive IPX packet.
Arguments:
Handle - Handle to socket port to use
IpxPacket - buffer for ipx packet (complete with header)
IpxPacketLength - length of the buffer
pReserved - buffer to exchange NIC information with IPX stack
(current implementation requires that memory allocated
for this buffer is immediately followed by the
IpxPacket buffer)
lpOverlapped - structure to be used for async IO, fields are set
as follows:
Internal - Reserved, must be 0
InternalHigh - Reserved, must be 0
Offset - Reserved, must be 0
OffsetHigh - Reserved, must be 0
hEvent - event to be signalled when IO
completes or NULL if CompletionRoutine
is to be called
CompletionRoutine - to be called when IO operation is completes
Return Value:
NO_ERROR - if lpOverlapped->hEvent!=NULL, then receive has
successfully completed (do not need to wait on event,
however it will be signalled anyway), otherwise,
receive operation has started and completion routine will
be called when done (possibly it has been called even
before this routine returned)
ERROR_IO_PENDING - only returned if lpOverlapped->hEvent!=NULL and
receive could not be completed immediately, event will
be signalled when operation is done:
call GetOverlapedResult to retrieve result of
the operation
other (windows error code) - operation could not be started
(completion routine won't be called/event won't be
signalled)
--*/
DWORD WINAPI
IpxRecvPacket (
IN HANDLE Handle,
OUT PUCHAR IpxPacket,
IN ULONG IpxPacketLength,
OUT PADDRESS_RESERVED lpReserved,
IN LPOVERLAPPED lpOverlapped,
IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
/* Use this to retrieve NIC index once IO completes */
#define GetNicIdx(pReserved) ((ULONG)*((USHORT *)(pReserved+2)))
/*++
I p x S e n d P a c k e t
Routine Description:
Enqueue request to send IPX packet.
Arguments:
Handle - Handle to socket port to use
AdapterIdx - NIC index on which to send
IpxPacket - IPX packet complete with header
IpxPacketLength - length of the packet
pReserved - buffer to exchange NIC info with IPX stack
lpOverlapped - structure to be used for async IO, fields are set
as follows:
Internal - Reserved, must be 0
InternalHigh - Reserved, must be 0
Offset - Reserved, must be 0
OffsetHigh - Reserved, must be 0
hEvent - event to be signalled when IO
completes or NULL if CompletionRoutine
is to be called
CompletionRoutine - to be called when IO operation is completes
Return Value:
NO_ERROR - if lpOverlapped->hEvent!=NULL, then send has
successfully completed (do not need to wait on event,
however it will be signalled anyway), otherwise,
send operation has started and completion routine will
be called when done (possibly it has been called even
before this routine returned)
ERROR_IO_PENDING - only returned if lpOverlapped->hEvent!=NULL and
send could not be completed immediately, event will
be signalled when operation is done:
call GetOverlapedResult to retrieve result of
the operation
other (windows error code) - operation could not be started
(completion routine won't be called/event won't be
signalled)
--*/
DWORD WINAPI
IpxSendPacket (
IN HANDLE Handle,
IN ULONG AdapterIdx,
IN PUCHAR IpxPacket,
IN ULONG IpxPacketLength,
IN PADDRESS_RESERVED lpReserved,
IN LPOVERLAPPED lpOverlapped,
IN LPOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
);
#endif // _IPX_ADAPTER_
@@ -0,0 +1,45 @@
//---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996
//
// File: oleds.odl
//
// Contents: OLE DS Interfaces
//
//----------------------------------------------------------------------------
#include "header.h"
[ uuid(OLEDS_LIBIID_ADs), version(1.0),
helpstring("Active DS Type Library") ]
library ActiveDs
{
importlib("stdole2.tlb");
#include <adstype.h>
#include "core.odl"
#include "namesps.odl"
#include "schema.odl"
#include "locality.odl"
#include "domain.odl"
#include "computer.odl"
#include "group.odl"
#include "user.odl"
#include "printer.odl"
#include "printjob.odl"
#include "serv.odl"
#include "fserv.odl"
#include "fshare.odl"
#include "session.odl"
#include "resource.odl"
#include "dsnamesp.odl"
#include "dsobj.odl"
#include "dssrch.odl"
#include "dsschema.odl"
#include "aggregate.odl"
#include "security.odl"
#include "largeint.odl"
#include "adspath.odl"
};

@@ -0,0 +1,40 @@
//+---------------------------------------------------------------------------
// Copyright (C) 1996, Microsoft Corporation.
//
// File: adsdb.h
//
// Contents: Definitions for the OLE DB provider for ADSI
//
//----------------------------------------------------------------------------
//
// printer status values
//
#ifdef __cplusplus
extern "C" {
#endif
//
// Properties that belong to the property set DBPROPSET_ADSISEARCH
#define ADSIPROP_ASYNCHRONOUS 0x00000000
#define ADSIPROP_DEREF_ALIASES 0x00000001
#define ADSIPROP_SIZE_LIMIT 0x00000002
#define ADSIPROP_TIME_LIMIT 0x00000003
#define ADSIPROP_ATTRIBTYPES_ONLY 0x00000004
#define ADSIPROP_SEARCH_SCOPE 0x00000005
#define ADSIPROP_TIMEOUT 0x00000006
#define ADSIPROP_PAGESIZE 0x00000007
#define ADSIPROP_PAGED_TIME_LIMIT 0x00000008
#define ADSIPROP_CHASE_REFERRALS 0x00000009
#define DBPROPFLAGS_ADSISEARCH 0x0000C000
#define ADSI_DIALECT_LDAP 0x00000000
#define ADSI_DIALECT_SQL 0x00000001
#ifdef __cplusplus
}
#endif
@@ -0,0 +1,262 @@
/*++ BUILD Version: 0001 // Increment this if a change has global effects
Copyright (c) 1991 Microsoft Corporation
Module Name:
oledserr.mc
Abstract:
Error codes for ADs
Revision History:
--*/
// ---------------------- HRESULT value definitions -----------------
//
// HRESULT definitions
//
#ifdef RC_INVOKED
#define _HRESULT_TYPEDEF_(_sc) _sc
#else // RC_INVOKED
#define _HRESULT_TYPEDEF_(_sc) ((HRESULT)_sc)
#endif // RC_INVOKED
//
// Values are 32 bit values layed out as follows:
//
// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
// +---+-+-+-----------------------+-------------------------------+
// |Sev|C|R| Facility | Code |
// +---+-+-+-----------------------+-------------------------------+
//
// where
//
// Sev - is the severity code
//
// 00 - Success
// 01 - Informational
// 10 - Warning
// 11 - Error
//
// C - is the Customer code flag
//
// R - is a reserved bit
//
// Facility - is the facility code
//
// Code - is the facility's status code
//
//
// Define the facility codes
//
#define FACILITY_WINDOWS 8
#define FACILITY_STORAGE 3
#define FACILITY_RPC 1
#define FACILITY_SSPI 9
#define FACILITY_WIN32 7
#define FACILITY_CONTROL 10
#define FACILITY_NULL 0
#define FACILITY_ITF 4
#define FACILITY_DISPATCH 2
//
// Define the severity codes
//
//
// MessageId: E_ADS_BAD_PATHNAME
//
// MessageText:
//
// An invalid Active Directory pathname was passed
//
#define E_ADS_BAD_PATHNAME _HRESULT_TYPEDEF_(0x80005000L)
//
// MessageId: E_ADS_INVALID_DOMAIN_OBJECT
//
// MessageText:
//
// An unknown Active Directory domain object was requested
//
#define E_ADS_INVALID_DOMAIN_OBJECT _HRESULT_TYPEDEF_(0x80005001L)
//
// MessageId: E_ADS_INVALID_USER_OBJECT
//
// MessageText:
//
// An unknown Active Directory user object was requested
//
#define E_ADS_INVALID_USER_OBJECT _HRESULT_TYPEDEF_(0x80005002L)
//
// MessageId: E_ADS_INVALID_COMPUTER_OBJECT
//
// MessageText:
//
// An unknown Active Directory computer object was requested
//
#define E_ADS_INVALID_COMPUTER_OBJECT _HRESULT_TYPEDEF_(0x80005003L)
//
// MessageId: E_ADS_UNKNOWN_OBJECT
//
// MessageText:
//
// An unknown Active Directory object was requested
//
#define E_ADS_UNKNOWN_OBJECT _HRESULT_TYPEDEF_(0x80005004L)
//
// MessageId: E_ADS_PROPERTY_NOT_SET
//
// MessageText:
//
// The specified Active Directory property was not set
//
#define E_ADS_PROPERTY_NOT_SET _HRESULT_TYPEDEF_(0x80005005L)
//
// MessageId: E_ADS_PROPERTY_NOT_SUPPORTED
//
// MessageText:
//
// The specified Active Directory property is not supported
//
#define E_ADS_PROPERTY_NOT_SUPPORTED _HRESULT_TYPEDEF_(0x80005006L)
//
// MessageId: E_ADS_PROPERTY_INVALID
//
// MessageText:
//
// The specified Active Directory property is invalid
//
#define E_ADS_PROPERTY_INVALID _HRESULT_TYPEDEF_(0x80005007L)
//
// MessageId: E_ADS_BAD_PARAMETER
//
// MessageText:
//
// One or more input parameters are invalid
//
#define E_ADS_BAD_PARAMETER _HRESULT_TYPEDEF_(0x80005008L)
//
// MessageId: E_ADS_OBJECT_UNBOUND
//
// MessageText:
//
// The specified Active Directory object is not bound to a remote resource
//
#define E_ADS_OBJECT_UNBOUND _HRESULT_TYPEDEF_(0x80005009L)
//
// MessageId: E_ADS_PROPERTY_NOT_MODIFIED
//
// MessageText:
//
// The specified Active Directory object has not been modified
//
#define E_ADS_PROPERTY_NOT_MODIFIED _HRESULT_TYPEDEF_(0x8000500AL)
//
// MessageId: E_ADS_PROPERTY_MODIFIED
//
// MessageText:
//
// The specified Active Directory object has not been modified
//
#define E_ADS_PROPERTY_MODIFIED _HRESULT_TYPEDEF_(0x8000500BL)
//
// MessageId: E_ADS_CANT_CONVERT_DATATYPE
//
// MessageText:
//
// The Active Directory datatype cannot be converted to/from a native DS datatype
//
#define E_ADS_CANT_CONVERT_DATATYPE _HRESULT_TYPEDEF_(0x8000500CL)
//
// MessageId: E_ADS_PROPERTY_NOT_FOUND
//
// MessageText:
//
// The Active Directory property cannot be found in the cache.
//
#define E_ADS_PROPERTY_NOT_FOUND _HRESULT_TYPEDEF_(0x8000500DL)
//
// MessageId: E_ADS_OBJECT_EXISTS
//
// MessageText:
//
// The Active Directory object exists.
//
#define E_ADS_OBJECT_EXISTS _HRESULT_TYPEDEF_(0x8000500EL)
//
// MessageId: E_ADS_SCHEMA_VIOLATION
//
// MessageText:
//
// The attempted action violates the DS schema rules.
//
#define E_ADS_SCHEMA_VIOLATION _HRESULT_TYPEDEF_(0x8000500FL)
//
// MessageId: E_ADS_COLUMN_NOT_SET
//
// MessageText:
//
// The specified column in the Active Directory was not set.
//
#define E_ADS_COLUMN_NOT_SET _HRESULT_TYPEDEF_(0x80005010L)
//
// MessageId: S_ADS_ERRORSOCCURRED
//
// MessageText:
//
// One or more errors occurred
//
#define S_ADS_ERRORSOCCURRED _HRESULT_TYPEDEF_(0x00005011L)
//
// MessageId: S_ADS_NOMORE_ROWS
//
// MessageText:
//
// No more rows to be obatained by the search result.
//
#define S_ADS_NOMORE_ROWS _HRESULT_TYPEDEF_(0x00005012L)
//
// MessageId: S_ADS_NOMORE_COLUMNS
//
// MessageText:
//
// No more columns to be obatained for the current row.
//
#define S_ADS_NOMORE_COLUMNS _HRESULT_TYPEDEF_(0x00005013L)
//
// MessageId: E_ADS_INVALID_FILTER
//
// MessageText:
//
// The search filter specified is invalid
//
#define E_ADS_INVALID_FILTER _HRESULT_TYPEDEF_(0x80005014L)
@@ -0,0 +1,202 @@
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996
//
// File: oleds.h
//
// Contents: Public header file for all oleds client code
//
//----------------------------------------------------------------------------
#ifndef _ADSHLP_
#define _ADSHLP_
#ifdef __cplusplus
extern "C" {
#endif
HRESULT WINAPI
ADsGetObject(
LPWSTR lpszPathName,
REFIID riid,
VOID * * ppObject
);
HRESULT WINAPI
ADsBuildEnumerator(
IADsContainer *pADsContainer,
IEnumVARIANT **ppEnumVariant
);
HRESULT WINAPI
ADsFreeEnumerator(
IEnumVARIANT *pEnumVariant
);
HRESULT WINAPI
ADsEnumerateNext(
IEnumVARIANT *pEnumVariant,
ULONG cElements,
VARIANT FAR *pvar,
ULONG FAR *pcElementsFetched
);
HRESULT WINAPI
ADsBuildVarArrayStr(
LPWSTR *lppPathNames,
DWORD dwPathNames,
VARIANT * pVar
);
HRESULT WINAPI
ADsBuildVarArrayInt(
LPDWORD lpdwObjectTypes,
DWORD dwObjectTypes,
VARIANT * pVar
);
HRESULT WINAPI
ADsOpenObject(
LPWSTR lpszPathName,
LPWSTR lpszUserName,
LPWSTR lpszPassword,
DWORD dwReserved,
REFIID riid,
void FAR * FAR * ppObject
);
//
// Helper functions for extended error support
//
HRESULT WINAPI
ADsGetLastError(
OUT LPDWORD lpError,
OUT LPWSTR lpErrorBuf,
IN DWORD dwErrorBufLen,
OUT LPWSTR lpNameBuf,
IN DWORD dwNameBufLen
);
VOID WINAPI
ADsSetLastError(
IN DWORD dwErr,
IN LPWSTR pszError,
IN LPWSTR pszProvider
);
VOID WINAPI
ADsFreeAllErrorRecords(
VOID);
LPVOID WINAPI
AllocADsMem(
DWORD cb
);
BOOL WINAPI
FreeADsMem(
LPVOID pMem
);
LPVOID WINAPI
ReallocADsMem(
LPVOID pOldMem,
DWORD cbOld,
DWORD cbNew
);
LPWSTR WINAPI
AllocADsStr(
LPWSTR pStr
);
BOOL WINAPI
FreeADsStr(
LPWSTR pStr
);
BOOL WINAPI
ReallocADsStr(
LPWSTR *ppStr,
LPWSTR pStr
);
HRESULT WINAPI
ADsEncodeBinaryData (
PBYTE pbSrcData,
DWORD dwSrcLen,
LPWSTR * ppszDestData
);
HRESULT WINAPI
PropVariantToAdsType(
VARIANT * pVariant,
DWORD dwNumVariant,
PADSVALUE *ppAdsValues,
PDWORD pdwNumValues
);
HRESULT WINAPI
AdsTypeToPropVariant(
PADSVALUE pAdsValues,
DWORD dwNumValues,
VARIANT * pVariant
);
void WINAPI
AdsFreeAdsValues(
PADSVALUE pAdsValues,
DWORD dwNumValues
);
#if DBG
extern LIST_ENTRY ADsMemList ;
extern CRITICAL_SECTION ADsMemCritSect ;
VOID WINAPI InitADsMem(
VOID
) ;
VOID WINAPI AssertADsMemLeaks(
VOID
) ;
VOID WINAPI
DumpMemoryTracker();
#else
#define InitADsMem()
#define AssertADsMemLeaks()
#define DumpMemoryTracker()
#endif
#ifdef __cplusplus
}
#endif
#endif // _ADSHLP_
@@ -0,0 +1,124 @@
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996
//
// File: oledsiid.h
//
// Contents: extern references for ADs guids
//
//----------------------------------------------------------------------------
#ifndef __ADSIID_H__
#define __ADSIID_H__
#ifdef __cplusplus
extern "C" {
#endif
// uuids from oledsiid.lib
extern const GUID LIBID_ADs;
extern const GUID IID_IADs;
extern const GUID IID_IADsContainer;
extern const GUID IID_IADsNamespaces;
extern const GUID IID_IADsDomain;
extern const GUID IID_IADsUser;
extern const GUID IID_IADsComputerOperations;
extern const GUID IID_IADsComputer;
extern const GUID IID_IADsGroup;
extern const GUID IID_IADsMembers;
extern const GUID IID_IADsPrintQueue;
extern const GUID IID_IADsPrintQueueOperations;
extern const GUID IID_IADsPrintJobOperations;
extern const GUID IID_IADsPrintJob;
extern const GUID IID_IADsCollection;
extern const GUID IID_IADsServiceOperations;
extern const GUID IID_IADsService;
extern const GUID IID_IADsFileServiceOperations;
extern const GUID IID_IADsFileService;
extern const GUID IID_IADsResource;
extern const GUID IID_IADsSession;
extern const GUID IID_IADsFileShare;
extern const GUID IID_IADsSchema;
extern const GUID IID_IADsClass;
extern const GUID IID_IADsProperty;
extern const GUID IID_IADsSyntax;
extern const GUID IID_IADsLocality;
extern const GUID IID_IADsO;
extern const GUID IID_IADsOU;
extern const GUID IID_IADsOpenDSObject;
extern const GUID IID_IADsSearch;
extern const GUID IID_IADsPropertyList;
extern const GUID IID_IDSObject;
extern const GUID IID_IDSSearch;
extern const GUID IID_IDSAttrMgmt;
extern const GUID IID_IDirectorySearch;
extern const GUID IID_IDirectoryObject;
extern const GUID IID_IDirectoryAttrMgmt;
//
// OLE DB Provider Guids
//
extern const GUID CLSID_ADsDSOObject;
extern const GUID DBGUID_LDAPDialect;
extern const GUID DBPROPSET_ADSISEARCH;
#ifdef __cplusplus
}
#endif
#endif

@@ -0,0 +1,56 @@
//+---------------------------------------------------------------------------
// Copyright (C) 1996, Microsoft Corporation.
//
// File: oledsnms.h
//
// Contents: Class Names and schema definitions for ADS objects
//
//----------------------------------------------------------------------------
#ifdef __cplusplus
extern "C" {
#endif
#define NAMESPACE_CLASS_NAME TEXT("Namespace")
#define COUNTRY_CLASS_NAME TEXT("Country")
#define LOCALITY_CLASS_NAME TEXT("Locality")
#define ORGANIZATION_CLASS_NAME TEXT("Organization")
#define ORGANIZATIONUNIT_CLASS_NAME TEXT("Organizational Unit")
#define DOMAIN_CLASS_NAME TEXT("Domain")
#define COMPUTER_CLASS_NAME TEXT("Computer")
#define USER_CLASS_NAME TEXT("User")
#define GROUP_CLASS_NAME TEXT("Group")
#define SERVICE_CLASS_NAME TEXT("Service")
#define FILESERVICE_CLASS_NAME TEXT("FileService")
#define SESSION_CLASS_NAME TEXT("Session")
#define RESOURCE_CLASS_NAME TEXT("Resource")
#define FILESHARE_CLASS_NAME TEXT("FileShare")
#define PRINTER_CLASS_NAME TEXT("PrintQueue")
#define PRINTJOB_CLASS_NAME TEXT("PrintJob")
#define SCHEMA_CLASS_NAME TEXT("Schema")
#define CLASS_CLASS_NAME TEXT("Class")
#define PROPERTY_CLASS_NAME TEXT("Property")
#define SYNTAX_CLASS_NAME TEXT("Syntax")
#define ROOTDSE_CLASS_NAME TEXT("RootDSE")
#define NO_SCHEMA TEXT("")
#define DOMAIN_SCHEMA_NAME TEXT("Domain")
#define COMPUTER_SCHEMA_NAME TEXT("Computer")
#define USER_SCHEMA_NAME TEXT("User")
#define GROUP_SCHEMA_NAME TEXT("Group")
#define SERVICE_SCHEMA_NAME TEXT("Service")
#define PRINTER_SCHEMA_NAME TEXT("PrintQueue")
#define PRINTJOB_SCHEMA_NAME TEXT("PrintJob")
#define FILESERVICE_SCHEMA_NAME TEXT("FileService")
#define SESSION_SCHEMA_NAME TEXT("Session")
#define RESOURCE_SCHEMA_NAME TEXT("Resource")
#define FILESHARE_SCHEMA_NAME TEXT("FileShare")
#define FPNW_FILESERVICE_SCHEMA_NAME TEXT("FPNWFileService")
#define FPNW_SESSION_SCHEMA_NAME TEXT("FPNWSession")
#define FPNW_RESOURCE_SCHEMA_NAME TEXT("FPNWResource")
#define FPNW_FILESHARE_SCHEMA_NAME TEXT("FPNWFileShare")
#ifdef __cplusplus
}
#endif

@@ -0,0 +1,104 @@
//+---------------------------------------------------------------------------
// Copyright (C) 1996, Microsoft Corporation.
//
// File: status.h
//
// Contents: Status Codes for ADS objects
//
//----------------------------------------------------------------------------
//
// printer status values
//
#ifdef __cplusplus
extern "C" {
#endif
#define ADS_PRINTER_PAUSED 0x00000001
#define ADS_PRINTER_PENDING_DELETION 0x00000002
#define ADS_PRINTER_ERROR 0x00000003
#define ADS_PRINTER_PAPER_JAM 0x00000004
#define ADS_PRINTER_PAPER_OUT 0x00000005
#define ADS_PRINTER_MANUAL_FEED 0x00000006
#define ADS_PRINTER_PAPER_PROBLEM 0x00000007
#define ADS_PRINTER_OFFLINE 0x00000008
#define ADS_PRINTER_IO_ACTIVE 0x00000100
#define ADS_PRINTER_BUSY 0x00000200
#define ADS_PRINTER_PRINTING 0x00000400
#define ADS_PRINTER_OUTPUT_BIN_FULL 0x00000800
#define ADS_PRINTER_NOT_AVAILABLE 0x00001000
#define ADS_PRINTER_WAITING 0x00002000
#define ADS_PRINTER_PROCESSING 0x00004000
#define ADS_PRINTER_INITIALIZING 0x00008000
#define ADS_PRINTER_WARMING_UP 0x00010000
#define ADS_PRINTER_TONER_LOW 0x00020000
#define ADS_PRINTER_NO_TONER 0x00040000
#define ADS_PRINTER_PAGE_PUNT 0x00080000
#define ADS_PRINTER_USER_INTERVENTION 0x00100000
#define ADS_PRINTER_OUT_OF_MEMORY 0x00200000
#define ADS_PRINTER_DOOR_OPEN 0x00400000
#define ADS_PRINTER_SERVER_UNKNOWN 0x00800000
#define ADS_PRINTER_POWER_SAVE 0x01000000
//
// job status values
//
#define ADS_JOB_PAUSED 0x00000001
#define ADS_JOB_ERROR 0x00000002
#define ADS_JOB_DELETING 0x00000004
#define ADS_JOB_SPOOLING 0x00000008
#define ADS_JOB_PRINTING 0x00000010
#define ADS_JOB_OFFLINE 0x00000020
#define ADS_JOB_PAPEROUT 0x00000040
#define ADS_JOB_PRINTED 0x00000080
#define ADS_JOB_DELETED 0x00000100
//
// service status values
//
#define ADS_SERVICE_STOPPED 0x00000001
#define ADS_SERVICE_START_PENDING 0x00000002
#define ADS_SERVICE_STOP_PENDING 0x00000003
#define ADS_SERVICE_RUNNING 0x00000004
#define ADS_SERVICE_CONTINUE_PENDING 0x00000005
#define ADS_SERVICE_PAUSE_PENDING 0x00000006
#define ADS_SERVICE_PAUSED 0x00000007
#define ADS_SERVICE_ERROR 0x00000008
//---------------------------------------------------------------------
//
// Service Type Valid Values
//
#define ADS_SERVICE_OWN_PROCESS 0x00000010
#define ADS_SERVICE_SHARE_PROCESS 0x00000020
#define ADS_SERVICE_KERNEL_DRIVER 0x00000001
#define ADS_SERVICE_FILE_SYSTEM_DRIVER 0x00000002
//
// Start Type Valid Values
//
#define ADS_SERVICE_BOOT_START SERVICE_BOOT_START
#define ADS_SERVICE_SYSTEM_START SERVICE_SYSTEM_START
#define ADS_SERVICE_AUTO_START SERVICE_AUTO_START
#define ADS_SERVICE_DEMAND_START SERVICE_DEMAND_START
#define ADS_SERVICE_DISABLED SERVICE_DISABLED
//
// Error Control Values
//
#define ADS_SERVICE_ERROR_IGNORE 0
#define ADS_SERVICE_ERROR_NORMAL 1
#define ADS_SERVICE_ERROR_SEVERE 2
#define ADS_SERVICE_ERROR_CRITICAL 3
#ifdef __cplusplus
}
#endif
@@ -0,0 +1,615 @@
//***************************************************************************
//* Copyright (c) Microsoft Corporation 1995-1998. All rights reserved. *
//***************************************************************************
//* *
//* ADVPUB.H - Specify the Interface for ADVPACK.DLL *
//* *
//***************************************************************************
#ifndef _ADVPUB_H_
#define _ADVPUB_H_
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: RunSetupCommand
//
// SYNOPSIS: Execute an install section in an INF file, or execute a
// program. Advanced INF files are supported.
//
// RETURN CODES:
//
// S_OK Everything OK, no reboot needed.
// No EXE to wait for.
// S_ASYNCHRONOUS Please wait on phEXE.
// ERROR_SUCCESS_REBOOT_REQUIRED Reboot required.
// E_INVALIDARG NULL specified in szCmdName or szDir
// HRESULT_FROM_WIN32(ERROR_OLD_WIN_VERSION) INF's not supported on this OS version
// E_UNEXPECTED Catastrophic failure(should never happen).
// HRESULT_FROM_WIN32(GetLastError()) Anything else
/////////////////////////////////////////////////////////////////////////////
#ifndef S_ASYNCHRONOUS
#define S_ASYNCHRONOUS _HRESULT_TYPEDEF_(0x401e8L)
#endif
#define achRUNSETUPCOMMANDFUNCTION "RunSetupCommand"
HRESULT WINAPI RunSetupCommand( HWND hWnd, LPCSTR szCmdName,
LPCSTR szInfSection, LPCSTR szDir,
LPCSTR lpszTitle, HANDLE *phEXE,
DWORD dwFlags, LPVOID pvReserved );
typedef HRESULT (WINAPI *RUNSETUPCOMMAND)(
HWND hWnd, // Handle to parent window NULL=Quiet mode
LPCSTR szCmdName, // Inf or EXE filename to "run"
LPCSTR szInfSection, // Inf section to install. NULL="DefaultInstall"
LPCSTR szDir, // Path to extracted files
LPCSTR szTitle, // Title for all dialogs
HANDLE *phEXE, // Handle to EXE to wait for
DWORD dwFlags, // Flags to specify functionality (see above)
LPVOID pvReserved // Reserved for future use
);
// FLAGS:
#define RSC_FLAG_INF 1 // exxcute INF install
#define RSC_FLAG_SKIPDISKSPACECHECK 2 // Currently does nothing
#define RSC_FLAG_QUIET 4 // quiet mode, no UI
#define RSC_FLAG_NGCONV 8 // don't run groupConv
#define RSC_FLAG_UPDHLPDLLS 16 // force to self-updating on user's system
#define RSC_FLAG_DELAYREGISTEROCX 512 // force delay of ocx registration
#define RSC_FLAG_SETUPAPI 1024 // use setupapi.dll
// please not adding flag after this. See LaunchINFSectionEx() flags.
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: NeedRebootInit
//
// SYNOPSIS: Initializes state for reboot checking. Call this function
// before calling RunSetupCommand.
// RETURNS: value required to be passed to NeedReboot()
/////////////////////////////////////////////////////////////////////////////
#define achNEEDREBOOTINITFUNCTION "NeedRebootInit"
DWORD WINAPI NeedRebootInit( VOID );
typedef DWORD (WINAPI *NEEDREBOOTINIT)(VOID);
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: NeedReboot
//
// SYNOPSIS: Compares stored state with current state to determine if a
// reboot is required.
// dwRebootCheck the return value from NeedRebootInit
//
// RETURNS:
// TRUE if a reboot is required;
// FALSE otherwise.
/////////////////////////////////////////////////////////////////////////////
#define achNEEDREBOOTFUNCTION "NeedReboot"
BOOL WINAPI NeedReboot( DWORD dwRebootCheck );
typedef BOOL (WINAPI *NEEDREBOOT)(
DWORD dwRebootCheck // Value returned from NeedRebootInit
);
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: DoReboot
//
// SYNOPSIS: Ask advpack to do reboot.
// hwnd if it is INVALID_HANDLE_VALUE, no user prompt. Otherwise promp.
// pszTitle User prompt UI title string.
// dwReserved Not used.
// RETURNS:
// FALSE User choose NO to reboot prompt.
/////////////////////////////////////////////////////////////////////////////
// #define achDOREBOOT "DoReboot"
// BOOL WINAPI DoReboot( HWND hwnd, BOOL bDoUI );
// typedef BOOL (WINAPI* DOREBOOT)( HWND hwnd, BOOL bDoUI );
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: RebootCheckOnInstall
//
// SYNOPSIS: Check reboot condition if the given INF section is installed.
// hwnd windows handle
// pszINF INF filename with fully qualified path
// pszSec INF section. NULL is translated as DefaultInstall or DefaultInstall.NT.
// dwReserved Not used.
// RETURN:
// S_OK Reboot needed if INF section is installed.
// S_FALSE Reboot is not needed if INF section is installed.
// HRESULT of Win 32 errors
//
/////////////////////////////////////////////////////////////////////////////
#define achPRECHECKREBOOT "RebootCheckOnInstall"
HRESULT WINAPI RebootCheckOnInstall( HWND hwnd, PCSTR pszINF, PCSTR pszSec, DWORD dwReserved );
typedef HRESULT (WINAPI *REBOOTCHECKONINSTALL)( HWND, PCSTR, PCSTR, DWORD );
//////////////////////////////////////////////////////////////////////////
// ENTRY POINT: TranslateInfString
//
// SYNOPSIS: Translates a key value in an INF file, using advanced INF
// syntax.
// RETURN CODES:
// S_OK Everything OK.
// HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
// The buffer size is too small to hold the
// translated string. Required size is in *pdwRequiredSize.
// E_INVALIDARG NULL specified in pszInfFilename, pszTranslateSection,
// pszTranslateKey, pdwRequiredSize.
// HRESULT_FROM_WIN32(ERROR_OLD_WIN_VERSION)
// OS not supported.
// E_UNEXPECTED Catastrophic failure -- should never happen.
// HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER)
// The section or key specified does not exist.
// HRESULT_FROM_WIN32(GetLastError()) Anything else
//
/////////////////////////////////////////////////////////////////////////////
#define c_szTRANSLATEINFSTRING "TranslateInfString"
HRESULT WINAPI TranslateInfString( PCSTR pszInfFilename, PCSTR pszInstallSection,
PCSTR pszTranslateSection, PCSTR pszTranslateKey,
PSTR pszBuffer, DWORD dwBufferSize,
PDWORD pdwRequiredSize, PVOID pvReserved );
typedef HRESULT (WINAPI *TRANSLATEINFSTRING)(
PCSTR pszInfFilename, // Name of INF file to process
PCSTR pszInstallSection, // Install section name (NULL=DefaultInstall)
PCSTR pszTranslateSection, // Section that contains key to translate
PCSTR pszTranslateKey, // Key to translate
PSTR pszBuffer, // Buffer to store translated key. (NULL=return required size only)
DWORD dwBufferSize, // Size of this buffer. If pszBuffer==NULL, this is ignored.
PDWORD pdwRequiredSize, // Required size of buffer
PVOID pvReserved // Reserved for future use
);
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: RegInstall
//
// SYNOPSIS: Loads an INF from a string resource, adds some entries to the
// INF string substitution table, and executes the INF.
// RETURNS:
// S_OK success.
// E_FAIL failure,
/////////////////////////////////////////////////////////////////////////////
#define achREGINSTALL "RegInstall"
typedef struct _StrEntry {
LPSTR pszName; // String to substitute
LPSTR pszValue; // Replacement string or string resource
} STRENTRY, *LPSTRENTRY;
typedef const STRENTRY CSTRENTRY;
typedef CSTRENTRY *LPCSTRENTRY;
typedef struct _StrTable {
DWORD cEntries; // Number of entries in the table
LPSTRENTRY pse; // Array of entries
} STRTABLE, *LPSTRTABLE;
typedef const STRTABLE CSTRTABLE;
typedef CSTRTABLE *LPCSTRTABLE;
HRESULT WINAPI RegInstall( HMODULE hm, LPCSTR pszSection, LPCSTRTABLE pstTable );
typedef HRESULT (WINAPI *REGINSTALL)(
HMODULE hm, // Module that contains REGINST resource
LPCSTR pszSection, // Section of INF to execute
LPCSTRTABLE pstTable // Additional string substitutions
);
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: LaunchINFSectionEx
//
// SYNOPSIS: Install INF section with BACKUP/ROLLBACK capabilities.
//
// RETURNS: E_FAIL on failure, S_OK on success.
/////////////////////////////////////////////////////////////////////////////
#define achLAUNCHINFSECTIONEX "LaunchINFSectionEx"
HRESULT WINAPI LaunchINFSectionEx( HWND hwnd, HINSTANCE hInstance, PSTR pszParms, INT nShow );
typedef HRESULT (WINAPI *LAUNCHINFSECTIONEX)(
HWND hwnd, // pass in window handle
HINSTANCE hInst, // instance handle
PSTR pszParams, // String contains params: INF,section,CAB,flags
INT nShow
);
// FLAGS:
// FLAGS value this way is for compatibility. Don't change them.
//
#define ALINF_QUIET 4 // quiet mode, no UI
#define ALINF_NGCONV 8 // don't run groupConv
#define ALINF_UPDHLPDLLS 16 // force to self-updating on user's system
#define ALINF_BKINSTALL 32 // backup data before install
#define ALINF_ROLLBACK 64 // rollback to previous state
#define ALINF_CHECKBKDATA 128 // validate the backup data
#define ALINF_ROLLBKDOALL 256 // bypass building file list
#define ALINF_DELAYREGISTEROCX 512 // force delay of ocx registration
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: ExecuteCab
//
// SYNOPSIS: Extract the an INF from the CAB file, and do INF install on it.
/////////////////////////////////////////////////////////////////////////////
// RETURNS: E_FAIL on failure, S_OK on success.
#define achEXECUTECAB "ExecuteCab"
typedef struct _CabInfo {
PSTR pszCab;
PSTR pszInf;
PSTR pszSection;
char szSrcPath[MAX_PATH];
DWORD dwFlags;
} CABINFO, *PCABINFO;
HRESULT WINAPI ExecuteCab( HWND hwnd, PCABINFO pCab, LPVOID pReserved );
typedef HRESULT (WINAPI *EXECUTECAB)(
HWND hwnd,
PCABINFO pCab,
LPVOID pReserved
);
// flag as LaunchINFSectionEx's flag defines
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: AdvInstallFile
//
// SYNOPSIS: To copy a file from the source to a destination
// Basicly a wrapper around the setupapi file copy engine
/////////////////////////////////////////////////////////////////////////////
// Flags which can be passed to AdvInstallFile
// Here is a copy of the flags defined in setupapi.h for reference below.
//#define COPYFLG_WARN_IF_SKIP 0x00000001 // warn if user tries to skip file
//#define COPYFLG_NOSKIP 0x00000002 // disallow skipping this file
//#define COPYFLG_NOVERSIONCHECK 0x00000004 // ignore versions and overwrite target
//#define COPYFLG_FORCE_FILE_IN_USE 0x00000008 // force file-in-use behavior
//#define COPYFLG_NO_OVERWRITE 0x00000010 // do not copy if file exists on target
//#define COPYFLG_NO_VERSION_DIALOG 0x00000020 // do not copy if target is newer
//#define COPYFLG_REPLACEONLY 0x00000400 // copy only if file exists on target
#define AIF_WARNIFSKIP 0x00000001 // system critical file: warn if user tries to skip
#define AIF_NOSKIP 0x00000002 // Skip is disallowed for this file
#define AIF_NOVERSIONCHECK 0x00000004 // don't check the version number of the file overwrite
#define AIF_FORCE_FILE_IN_USE 0x00000008 // force file-in-use behavior
#define AIF_NOOVERWRITE 0x00000010 // copy only if target doesn't exist
// if AIF_QUIET, the file is not copied and
// the user is not notified
#define AIF_NO_VERSION_DIALOG 0x00000020 // do not copy if target is newer
#define AIF_REPLACEONLY 0x00000400 // copy only if target file already present
// Flags only known to AdvInstallFile
#define AIF_NOLANGUAGECHECK 0x10000000 // don't check the language of the file
// if the flags is NOT specified and AIF_QUIET
// the file is not copied and the user is not notified
#define AIF_QUIET 0x20000000 // No UI to the user
#define achADVINSTALLFILE "AdvInstallFile"
HRESULT WINAPI AdvInstallFile(HWND hwnd, LPCSTR lpszSourceDir, LPCSTR lpszSourceFile,
LPCSTR lpszDestDir, LPCSTR lpszDestFile, DWORD dwFlags, DWORD dwReserved);
typedef HRESULT (WINAPI *ADVINSTALLFILE)(
HWND hwnd, // Parent Window for messages
LPCSTR lpszSourceDir, // Source directory (does not contain filename)
LPCSTR lpszSourceFile, // Filename only
LPCSTR lpszDestDir, // Destination directory (does not contain filename)
LPCSTR lpszDestFile, // optional filename. if NULL lpszSourceFile is used
DWORD dwFlags, // AIF_* FLAGS
DWORD dwReserved);
//////////////////////////////////////////////////////////////////
//
//////////////////////////////////////////////////////////////////
// the following flags are for backwards compatiable. No API user
// should reference them directly now.
//
#define IE4_RESTORE 0x00000001 // if this bit is off, save the registries.
#define IE4_BACKNEW 0x00000002 // backup all files which are not backed up before
#define IE4_NODELETENEW 0x00000004 // don't delete files we don't backed up before
#define IE4_NOMESSAGES 0x00000008 // No message display in any events.
#define IE4_NOPROGRESS 0x00000010 // this bit on: No file backup progressbar
#define IE4_NOENUMKEY 0x00000020 // this bit on: Don't Enum sub key even there is no given valuename
#define IE4_NO_CRC_MAPPING 0x00000040 // Normally you should not turn on this bit, advpack creates
// internal mapping for all the entries backed up.
#define IE4_REGSECTION 0x00000080 // INF AddReg/DelReg section
#define IE4_FRDOALL 0x00000100 // FileRestore DoAll
#define IE4_UPDREFCNT 0x00000200 // Update the ref count in .ini backup file list
#define IE4_USEREFCNT 0x00000400 // use ref count to determin if the backup file should be put back
#define IE4_EXTRAINCREFCNT 0x00000800 // if increase the ref cnt if it has been updated before
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: RegSaveRestore
//
// SYNOPSIS: Save or Restore the given register value or given INF reg section.
//
// RETURNS: E_FAIL on failure, S_OK on success.
/////////////////////////////////////////////////////////////////////////////
// Save or Restore the given register value
HRESULT WINAPI RegSaveRestore(HWND hWnd, PCSTR pszTitleString, HKEY hkBckupKey, PCSTR pcszRootKey, PCSTR pcszSubKey, PCSTR pcszValueName, DWORD dwFlags);
typedef HRESULT (WINAPI *REGSAVERESTORE)( HWND hWnd,
PCSTR pszTitleString, // user specified UI title
HKEY hkBckupKey, // opened Key handle to store the backup data
PCSTR pcszRootKey, // RootKey string
PCSTR pcszSubKey, // SubKey string
PCSTR pcszValueName, // Value name string
DWORD dwFlags); // Flags
// Save or Restore the given INF Reg Section. At restore, if INF and Section pointers are NULL,
// Restore all from the given backup key handle.
HRESULT WINAPI RegSaveRestoreOnINF( HWND hWnd, PCSTR pszTitle, PCSTR pszINF,
PCSTR pszSection, HKEY hHKLMBackKey, HKEY hHKCUBackKey, DWORD dwFlags );
typedef HRESULT (WINAPI *REGSAVERESTOREONINF)( HWND hWnd,
PCSTR pszTitle, // user specified UI title
PCSTR pszINF, // INF filename with fully qualified path
PCSTR pszSection, // INF section name. NULL == default
HKEY hHKLMBackKey, // openned key handle to store the data
HKEY hHKCUBackKey, // openned key handle to store the data
DWORD dwFlags ); // Flags
// FLAG:
#define ARSR_RESTORE IE4_RESTORE // if this bit is off, means Save. Otherwise, restore.
#define ARSR_NOMESSAGES IE4_NOMESSAGES // Quiet no messages in any event.
#define ARSR_REGSECTION IE4_REGSECTION // if this bit is off, the given section is GenInstall Section
// Turn on the logging by add these RegVale in HKLM\software\microsoft\IE4
#define REG_SAVE_LOG_KEY "RegSaveLogFile"
#define REG_RESTORE_LOG_KEY "RegRestoreLogFile"
// for backwards compatible add this one back
HRESULT WINAPI RegRestoreAll(HWND hWnd, PSTR pszTitleString, HKEY hkBckupKey);
typedef HRESULT (WINAPI *REGRESTOREALL)(HWND hWnd, PSTR pszTitleString, HKEY hkBckupKey);
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: FileSaveRestore
//
// SYNOPSIS: Save or Restore the files on the list lpFileList.
// If lpFileList is NULL at restore time, the function will restore
// all based on INI index file.
//
// RETURNS: E_FAIL on failure, S_OK on success.
/////////////////////////////////////////////////////////////////////////////
HRESULT WINAPI FileSaveRestore( HWND hDlg, LPSTR lpFileList, LPSTR lpDir, LPSTR lpBaseName, DWORD dwFlags);
typedef HRESULT (WINAPI *FILESAVERESTORE)( HWND hDlg,
LPSTR lpFileList, // File list file1\0file2\0filen\0\0
LPSTR lpDir, // pathname of the backup directory
LPSTR lpBaseName, // backup file basename
DWORD dwFlags); // Flags
HRESULT WINAPI FileSaveRestoreOnINF( HWND hWnd, PCSTR pszTitle, PCSTR pszINF,
PCSTR pszSection, PCSTR pszBackupDir, PCSTR pszBaseBackupFile,
DWORD dwFlags );
typedef HRESULT (WINAPI *FILESAVERESTOREONINF)( HWND hDlg,
PCSTR pszTitle, // user specified UI title
PCSTR pszINF, // INF filename with fully qualified path
PCSTR pszSection, // GenInstall INF section name. NULL == default
PCSTR pszBackupDir, // directory to store the backup file
PCSTR pszBaseBackFile, // Basename of the backup data files
DWORD dwFlags ); // Flags
// FLAGS:
#define AFSR_RESTORE IE4_RESTORE // if this bit is off, save the file.
#define AFSR_BACKNEW IE4_BACKNEW // backup all files which are not backed up before
#define AFSR_NODELETENEW IE4_NODELETENEW // don't delete files we don't backed up before
#define AFSR_NOMESSAGES IE4_NOMESSAGES // No message display in any events.
#define AFSR_NOPROGRESS IE4_NOPROGRESS // this bit on: No file backup progressbar
#define AFSR_UPDREFCNT IE4_UPDREFCNT // update the reference count for the files
#define AFSR_USEREFCNT IE4_USEREFCNT // use the ref count to guide the restore file
#define AFSR_EXTRAINCREFCNT IE4_EXTRAINCREFCNT
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: AddDelBackupEntry
//
// SYNOPSIS: If AADBE_ADD_ENTRY is specified, mark the file in the File list as not existing
// during file save in the INI file. This can be used to mark additional files that
// they did not exist during backup to avoid having them backup the next time the
// FileSaveRestore is called to save files.
// If AADBE_DEL_ENTRY is specified, delete the entry from the INI. This mechanism can
// be used to leave files permanently on the system.
//
// RETURNS:
// S_OK success
// E_FAIL failure
/////////////////////////////////////////////////////////////////////////////
HRESULT WINAPI AddDelBackupEntry(LPCSTR lpcszFileList, LPCSTR lpcszBackupDir, LPCSTR lpcszBaseName, DWORD dwFlags);
typedef HRESULT (WINAPI *ADDDELBACKUPENTRY)(LPCSTR lpcszFileList, // File list file1\0file2\0filen\0\0
LPCSTR lpcszBackupDir, // pathname of the backup directory
LPCSTR lpcszBaseName, // backup file basename
DWORD dwFlags);
#define AADBE_ADD_ENTRY 0x01 // add entries to the INI file
#define AADBE_DEL_ENTRY 0x02 // delete entries from the INI file
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: FileSaveMarkNotExist
//
// SYNOPSIS: Mark the file in the File list as not existing during file save in the INI file
// This can be used to mark additional files that they did not exist during backup
// to avoid having them backup the next time the FileSaveRestore is called to save
// files
//
// RETURNS:
// S_OK success
// E_FAIL failure
/////////////////////////////////////////////////////////////////////////////
HRESULT WINAPI FileSaveMarkNotExist( LPSTR lpFileList, LPSTR lpDir, LPSTR lpBaseName);
typedef HRESULT (WINAPI *FILESAVEMARKNOTEXIST)( LPSTR lpFileList, // File list file1\0file2\0filen\0\0
LPSTR lpDir, // pathname of the backup directory
LPSTR lpBaseName); // backup file basename
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: GetVersionFromFile
//
// SYNOPSIS: Get the given file's version and lang information.
//
// RETURNS: E_FAIL on failure, S_OK on success.
/////////////////////////////////////////////////////////////////////////////
HRESULT WINAPI GetVersionFromFile(LPSTR lpszFilename, LPDWORD pdwMSVer, LPDWORD pdwLSVer, BOOL bVersion);
typedef HRESULT (WINAPI *GETVERSIONFROMFILE)(
LPSTR lpszFilename, // filename to get info from
LPDWORD pdwMSVer, // Receive Major version
LPDWORD pdwLSVer, // Receive Minor version
BOOL bVersion); // if FALSE, pdwMSVer receive lang ID
// pdwLSVer receive Codepage ID
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: IsNTAdmin
//
// SYNOPSIS: On NT, check if user has admin right.
//
// RETURNS: TURE has admin right; FLSE no admin right.
/////////////////////////////////////////////////////////////////////////////
#define achISNTADMIN "IsNTAdmin"
BOOL WINAPI IsNTAdmin( DWORD dwReserved, DWORD *lpdwReserved );
typedef BOOL (WINAPI *ISNTADMIN)( DWORD, // not used
DWORD * ); // not used
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: DelNode
//
// SYNOPSIS: Deletes a file or directory
//
// RETURNS:
// S_OK success
// E_FAIL failure
/////////////////////////////////////////////////////////////////////////////
// FLAGS:
#define ADN_DEL_IF_EMPTY 0x00000001 // delete the directory only if it's empty
#define ADN_DONT_DEL_SUBDIRS 0x00000002 // don't delete any sub-dirs; delete only the files
#define ADN_DONT_DEL_DIR 0x00000004 // don't delete the dir itself
#define achDELNODE "DelNode"
HRESULT WINAPI DelNode(LPCSTR pszFileOrDirName, DWORD dwFlags);
typedef HRESULT (WINAPI *DELNODE)(
LPCSTR pszFileOrDirName, // Name of file or directory to delete
DWORD dwFlags // 0, ADN_DEL_IF_EMPTY, etc. can be specified
);
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: DelNodeRunDLL32
//
// SYNOPSIS: Deletes a file or directory; the parameters to this API are of
// WinMain type
//
// RETURNS:
// S_OK success
// E_FAIL failure
/////////////////////////////////////////////////////////////////////////////
#define achDELNODERUNDLL32 "DelNodeRunDLL32"
HRESULT WINAPI DelNodeRunDLL32(HWND hwnd, HINSTANCE hInstance, PSTR pszParms, INT nShow);
typedef HRESULT (WINAPI *DELNODERUNDLL32)(
HWND hwnd, // pass in window handle
HINSTANCE hInst, // instance handle
PSTR pszParams, // String contains params: FileOrDirName,Flags
INT nShow
);
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: OpenINFEngine, TranslateINFStringEx, CloseINFEngine
//
// SYNOPSIS: Three APIs give the caller the option to be more efficient when need
// Advpack to translate INF file in a continue fashion.
//
// RETURNS:
// S_OK success
// E_FAIL failure
/////////////////////////////////////////////////////////////////////////////
//
// Define type for reference to loaded inf file
// (from setupapi.h)
typedef PVOID HINF;
HRESULT WINAPI OpenINFEngine( PCSTR pszInfFilename, PCSTR pszInstallSection,
DWORD dwFlags, HINF *phInf, PVOID pvReserved );
HRESULT WINAPI TranslateInfStringEx( HINF hInf, PCSTR pszInfFilename,
PCSTR pszTranslateSection, PCSTR pszTranslateKey,
PSTR pszBuffer, DWORD dwBufferSize,
PDWORD pdwRequiredSize, PVOID pvReserved );
HRESULT WINAPI CloseINFEngine( HINF hInf );
HRESULT WINAPI ExtractFiles( LPCSTR pszCabName, LPCSTR pszExpandDir, DWORD dwFlags,
LPCSTR pszFileList, LPVOID lpReserved, DWORD dwReserved);
/////////////////////////////////////////////////////////////////////////////
// ENTRY POINT: LaunchINFSection
//
// SYNOPSIS: Install INF section WITHOUT BACKUP/ROLLBACK capabilities.
//
// RETURNS: E_FAIL on failure, S_OK on success.
/////////////////////////////////////////////////////////////////////////////
INT WINAPI LaunchINFSection( HWND, HINSTANCE, PSTR, INT );
// LaunchINFSection flags
#define LIS_QUIET 0x0001 // Bit 0
#define LIS_NOGRPCONV 0x0002 // Bit 1
// Flags in Advanced INF RunPreSetupCommands and RunPostSetupCommands of the Install section
// Those flags can tell advpack how to run those commands, quiet or not quiet, wait or not wait.
// The Default for runing those commands are: Not Quiet and Wait for finish before return the caller.
// I.E> RunPostSetupCommands = MyCmdsSecA:1, MyCmdsSecB:2, MyCmdsSecC
//
#define RUNCMDS_QUIET 0x00000001
#define RUNCMDS_NOWAIT 0x00000002
#define RUNCMDS_DELAYPOSTCMD 0x00000004
// Active Setup Installed Components GUID for IE4
#define awchMSIE4GUID L"{89820200-ECBD-11cf-8B85-00AA005B4383}"
/////////////////////////////////////////////////////////////////////////////
//
/////////////////////////////////////////////////////////////////////////////
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif // _ADVPUB_H_
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,86 @@
/* this file contains the actual definitions of */
/* the IIDs and CLSIDs */
/* link this file in with the server and any clients */
/* File created by MIDL compiler version 3.01.75 */
/* at Wed Aug 13 20:54:44 1997
*/
/* Compiler settings for AgentControl.idl:
Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: none
*/
//@@MIDL_FILE_HEADING( )
#ifdef __cplusplus
extern "C"{
#endif
#ifndef __IID_DEFINED__
#define __IID_DEFINED__
typedef struct _IID
{
unsigned long x;
unsigned short s1;
unsigned short s2;
unsigned char c[8];
} IID;
#endif // __IID_DEFINED__
#ifndef CLSID_DEFINED
#define CLSID_DEFINED
typedef IID CLSID;
#endif // CLSID_DEFINED
const IID IID_IAgentCtlRequest = {0x1DAB85C3,0x803A,0x11D0,{0xAC,0x63,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgentCtlUserInput = {0xC4ABF875,0x8100,0x11D0,{0xAC,0x63,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgentCtlBalloon = {0xF5BE8BD3,0x7DE6,0x11D0,{0x91,0xFE,0x00,0xC0,0x4F,0xD7,0x01,0xA5}};
const IID IID_IAgentCtlCommand = {0xF5BE8BE3,0x7DE6,0x11D0,{0x91,0xFE,0x00,0xC0,0x4F,0xD7,0x01,0xA5}};
const IID IID_IAgentCtlCommands = {0xF5BE8BE1,0x7DE6,0x11D0,{0x91,0xFE,0x00,0xC0,0x4F,0xD7,0x01,0xA5}};
const IID IID_IAgentCtlCharacter = {0xF5BE8BD9,0x7DE6,0x11D0,{0x91,0xFE,0x00,0xC0,0x4F,0xD7,0x01,0xA5}};
const IID IID_IAgentCtlCharacters = {0xF5BE8BE8,0x7DE6,0x11D0,{0x91,0xFE,0x00,0xC0,0x4F,0xD7,0x01,0xA5}};
const IID IID_IAgentCtlAudioObject = {0xF5BE8BDB,0x7DE6,0x11D0,{0x91,0xFE,0x00,0xC0,0x4F,0xD7,0x01,0xA5}};
const IID IID_IAgentCtlSpeechInput = {0xF5BE8BDD,0x7DE6,0x11D0,{0x91,0xFE,0x00,0xC0,0x4F,0xD7,0x01,0xA5}};
const IID IID_IAgentCtlPropertySheet = {0xF5BE8BDF,0x7DE6,0x11D0,{0x91,0xFE,0x00,0xC0,0x4F,0xD7,0x01,0xA5}};
const IID IID_IAgentCtlCommandsWindow = {0x6D0ECB27,0x9968,0x11D0,{0xAC,0x6E,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgentCtl = {0xF5BE8BD1,0x7DE6,0x11D0,{0x91,0xFE,0x00,0xC0,0x4F,0xD7,0x01,0xA5}};
const IID LIBID_AgentObjects = {0xF5BE8BC2,0x7DE6,0x11D0,{0x91,0xFE,0x00,0xC0,0x4F,0xD7,0x01,0xA5}};
const IID DIID__AgentEvents = {0xF5BE8BD4,0x7DE6,0x11D0,{0x91,0xFE,0x00,0xC0,0x4F,0xD7,0x01,0xA5}};
const CLSID CLSID_Agent = {0xF5BE8BD2,0x7DE6,0x11D0,{0x91,0xFE,0x00,0xC0,0x4F,0xD7,0x01,0xA5}};
#ifdef __cplusplus
}
#endif
@@ -0,0 +1,118 @@
#ifndef _AgentError_h_
#define _AgentError_h_
// Microsoft Agent Error Macros
#define AGENTERROR(x) MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, (x)+0x2000)
#define AGENTWARNING(x) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, (x)+0x2000)
#define AGENTREQERROR(x) MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, (x)+0x2100)
#define AGENTPROVIDERERROR(x) MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, (x)+0x2200)
#define AGENTVOICEERROR(x) MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, (x)+0x2300)
#define AGENTAUDIOERROR(x) MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, (x)+0x2400)
#define AGENTCTLERROR(x) MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, (x)+0x2500)
#define AGENTEXTERROR(x) MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, (x)+0x2600)
// Agent Errors
#define AGENTERR_CLIENTINVALID AGENTERROR(1)
#define AGENTERR_CHARACTERINVALID AGENTERROR(2)
#define AGENTERR_ANIMATIONNOTFOUND AGENTERROR(3)
#define AGENTERR_STATENOTFOUND AGENTERROR(4)
#define AGENTERR_AUDIONOTFOUND AGENTERROR(5)
#define AGENTERR_COMMANDNOTFOUND AGENTERROR(6)
#define AGENTERR_COMMANDALREADYINUSE AGENTERROR(7)
#define AGENTERR_MENUNOTFOUND AGENTERROR(8)
#define AGENTERR_LOSTCONNECTION AGENTERROR(9)
#define AGENTERR_CHARACTERNOTVISIBLE AGENTERROR(10)
#define AGENTERR_CHARACTERALREADYLOADED AGENTERROR(11)
#define AGENTERR_NOBALLOON AGENTERROR(12)
#define AGENTERR_NOCOMMANDSWINDOW AGENTERROR(13)
#define AGENTERR_INVALIDPREPARETYPE AGENTERROR(14)
#define AGENTERR_INVALIDANIMATION AGENTERROR(15)
#define AGENTERR_CANTMOVEDURINGDRAG AGENTERROR(16)
// Warnings
#define AGENTWARNING_TTSENGINENOTFOUND AGENTWARNING(1)
#define AGENTWARNING_ONLYCLIENT AGENTWARNING(2)
// Request Errors
#define AGENTREQERR_OBJECTNOTFOUND AGENTREQERROR(1)
#define AGENTREQERR_OBJECTINVALID AGENTREQERROR(2)
#define AGENTREQERR_CANTSTOPOTHERS AGENTREQERROR(3)
#define AGENTREQERR_CANTINTERRUPTSELF AGENTREQERROR(4)
#define AGENTREQERR_CANTWAITONSELF AGENTREQERROR(5)
#define AGENTREQERR_INVALIDBOOKMARK AGENTREQERROR(6)
#define AGENTREQERR_SUSPENDED AGENTREQERROR(7)
#define AGENTREQERR_REMOVED AGENTREQERROR(8)
#define IS_INTERRUPT_ERROR(hRes) ((hRes >= AGENTREQERR_INTERRUPTEDLISTENKEY) && \
(hRes <= AGENTREQERR_INTERRUPTEDUSER))
#define AGENTREQERR_INTERRUPTEDLISTENKEY AGENTREQERROR(10)
#define AGENTREQERR_INTERRUPTEDHEARING AGENTREQERROR(11)
#define AGENTREQERR_INTERRUPTEDCODE AGENTREQERROR(12)
#define AGENTREQERR_INTERRUPTEDUSER AGENTREQERROR(13)
#define AGENTREQERR_INVALIDLASTTAG AGENTREQERROR(14)
// Data Provider Errors
#define AGENTPROVERROR_INIT AGENTPROVIDERERROR(1)
#define AGENTPROVERROR_CHARACTERVERSION AGENTPROVIDERERROR(2)
#define AGENTPROVERROR_VERSION AGENTPROVIDERERROR(3)
#define AGENTPROVERROR_MAGIC AGENTPROVIDERERROR(4)
#define AGENTPROVERROR_CHARACTERINVALID AGENTPROVIDERERROR(5)
#define AGENTPROVERROR_WAVEINVALID AGENTPROVIDERERROR(6)
#define AGENTPROVERROR_WAVECORRUPT AGENTPROVIDERERROR(7)
#define AGENTPROVERROR_MMIO AGENTPROVIDERERROR(8)
#define AGENTPROVERROR_PROTOCOL AGENTPROVIDERERROR(9)
// Audio Errors
#define AGENTAUDIOERROR_DEVICE AGENTAUDIOERROR(1)
#define AGENTAUDIOERROR_TTSENUMERATOR AGENTAUDIOERROR(2)
#define AGENTAUDIOERROR_TTSSELECT AGENTAUDIOERROR(3)
#define AGENTAUDIOERROR_TTSREGISTER AGENTAUDIOERROR(4)
#define AGENTAUDIOERROR_TTSUNEXPECTED AGENTAUDIOERROR(5)
#define AGENTAUDIOERROR_LWVINIT AGENTAUDIOERROR(6)
#define AGENTAUDIOERROR_LWVREGISTER AGENTAUDIOERROR(7)
#define AGENTAUDIOERROR_LWVUNEXPECTED AGENTAUDIOERROR(8)
// Agent Control Errors
#define AGENTCTLERROR_NOEVENTSAVAILABLE AGENTCTLERROR(1)
#define AGENTCTLERROR_SERVERINIT AGENTCTLERROR(2)
#define AGENTCTLERROR_LANGUAGE AGENTCTLERROR(3)
// Speech Recognition Errors
#define AGENTVOICEERROR_COULDNTSTARTDEVICE AGENTVOICEERROR(1)
#define AGENTVOICEERROR_NOTINSTALLED AGENTVOICEERROR(2)
#define AGENTVOICEERROR_NOTINITIALIZED AGENTVOICEERROR(3)
#define AGENTVOICEERROR_INVALIDMENU AGENTVOICEERROR(4)
#define AGENTVOICEERROR_UNCLOSEDALTERNATIVE AGENTVOICEERROR(5)
#define AGENTVOICEERROR_UNCLOSEDOPTIONAL AGENTVOICEERROR(6)
#define AGENTVOICEERROR_UNEXPECTEDENDOFALTERNATIVE AGENTVOICEERROR(7)
#define AGENTVOICEERROR_UNEXPECTEDENDOFOPTIONAL AGENTVOICEERROR(8)
#define AGENTVOICEERROR_UNEXPECTEDALTERNATIVE AGENTVOICEERROR(9)
#define AGENTVOICEERROR_NOSRMODE AGENTVOICEERROR(10)
#define AGENTVOICEERROR_SRMODENOTFOUND AGENTVOICEERROR(11)
#define AGENTVOICEERROR_SPEECHDISABLED AGENTVOICEERROR(12)
// Agent Extension Manager Errors
#define AGENTEXTERROR_EXTNOTFOUND AGENTEXTERROR(1)
#define AGENTEXTERROR_INVALIDCLIENT AGENTEXTERROR(2)
#endif
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,83 @@
/* this file contains the actual definitions of */
/* the IIDs and CLSIDs */
/* link this file in with the server and any clients */
/* File created by MIDL compiler version 3.01.75 */
/* at Wed Aug 13 21:04:17 1997
*/
/* Compiler settings for AgentServer.idl:
Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: none
*/
//@@MIDL_FILE_HEADING( )
#ifdef __cplusplus
extern "C"{
#endif
#ifndef __IID_DEFINED__
#define __IID_DEFINED__
typedef struct _IID
{
unsigned long x;
unsigned short s1;
unsigned short s2;
unsigned char c[8];
} IID;
#endif // __IID_DEFINED__
#ifndef CLSID_DEFINED
#define CLSID_DEFINED
typedef IID CLSID;
#endif // CLSID_DEFINED
const IID IID_IAgentUserInput = {0xA7B93C80,0x7B81,0x11D0,{0xAC,0x5F,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgentCommand = {0xA7B93C83,0x7B81,0x11D0,{0xAC,0x5F,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgentCommands = {0xA7B93C85,0x7B81,0x11D0,{0xAC,0x5F,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgentCommandWindow = {0x6D0ECB23,0x9968,0x11D0,{0xAC,0x6E,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgentSpeechInputProperties = {0xA7B93C87,0x7B81,0x11D0,{0xAC,0x5F,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgentAudioOutputProperties = {0xA7B93C89,0x7B81,0x11D0,{0xAC,0x5F,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgentPropertySheet = {0xA7B93C8B,0x7B81,0x11D0,{0xAC,0x5F,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgentBalloon = {0xA7B93C8D,0x7B81,0x11D0,{0xAC,0x5F,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgentCharacter = {0xA7B93C8F,0x7B81,0x11D0,{0xAC,0x5F,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgent = {0xA7B93C91,0x7B81,0x11D0,{0xAC,0x5F,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgentNotifySink = {0x00D18159,0x8466,0x11D0,{0xAC,0x63,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID IID_IAgentPrivateNotifySink = {0xB741B760,0x8EA6,0x11d0,{0xAC,0x6A,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const IID LIBID_AgentServerObjects = {0xA7B93C73,0x7B81,0x11D0,{0xAC,0x5F,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
const CLSID CLSID_AgentServer = {0xA7B93C92,0x7B81,0x11D0,{0xAC,0x5F,0x00,0xC0,0x4F,0xD9,0x75,0x75}};
#ifdef __cplusplus
}
#endif
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,58 @@
//==========================================================================;
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
// Copyright (c) 1992 - 1997 Microsoft Corporation. All Rights Reserved.
//
//--------------------------------------------------------------------------;
// Audio related definitions and interfaces for ActiveMovie
#ifndef __AMAUDIO__
#define __AMAUDIO__
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
#include <mmsystem.h>
#include <dsound.h>
// This is the interface the audio renderer supports to give the application
// access to the direct sound object and buffers it is using, to allow the
// application to use things like the 3D features of Direct Sound for the
// soundtrack of a movie being played with Active Movie
// be nice to our friends in C
#undef INTERFACE
#define INTERFACE IAMDirectSound
DECLARE_INTERFACE_(IAMDirectSound,IUnknown)
{
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/* IAMDirectSound methods */
STDMETHOD(GetDirectSoundInterface)(THIS_ LPDIRECTSOUND *lplpds) PURE;
STDMETHOD(GetPrimaryBufferInterface)(THIS_ LPDIRECTSOUNDBUFFER *lplpdsb) PURE;
STDMETHOD(GetSecondaryBufferInterface)(THIS_ LPDIRECTSOUNDBUFFER *lplpdsb) PURE;
STDMETHOD(ReleaseDirectSoundInterface)(THIS_ LPDIRECTSOUND lpds) PURE;
STDMETHOD(ReleasePrimaryBufferInterface)(THIS_ LPDIRECTSOUNDBUFFER lpdsb) PURE;
STDMETHOD(ReleaseSecondaryBufferInterface)(THIS_ LPDIRECTSOUNDBUFFER lpdsb) PURE;
STDMETHOD(SetFocusWindow)(THIS_ HWND, BOOL) PURE ;
STDMETHOD(GetFocusWindow)(THIS_ HWND *, BOOL*) PURE ;
};
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // __AMAUDIO__
@@ -0,0 +1,578 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 3.03.0110 */
/* at Tue Sep 09 20:17:58 1997
*/
/* Compiler settings for amrtpdmx.idl:
Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: none
*/
//@@MIDL_FILE_HEADING( )
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __amrtpdmx_h__
#define __amrtpdmx_h__
#ifdef __cplusplus
extern "C"{
#endif
/* Forward Declarations */
#ifndef __IEnumSSRCs_FWD_DEFINED__
#define __IEnumSSRCs_FWD_DEFINED__
typedef interface IEnumSSRCs IEnumSSRCs;
#endif /* __IEnumSSRCs_FWD_DEFINED__ */
#ifndef __IRTPDemuxFilter_FWD_DEFINED__
#define __IRTPDemuxFilter_FWD_DEFINED__
typedef interface IRTPDemuxFilter IRTPDemuxFilter;
#endif /* __IRTPDemuxFilter_FWD_DEFINED__ */
/* header files for imported files */
#include "oaidl.h"
#include "strmif.h"
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * );
#ifndef __IEnumSSRCs_INTERFACE_DEFINED__
#define __IEnumSSRCs_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: IEnumSSRCs
* at Tue Sep 09 20:17:58 1997
* using MIDL 3.03.0110
****************************************/
/* [unique][uuid][object] */
EXTERN_C const IID IID_IEnumSSRCs;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("40CC70E8-6FC4-11d0-9CCF-00A0C9081C19")
IEnumSSRCs : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Next(
/* [in] */ ULONG cSSRCs,
/* [size_is][out] */ DWORD __RPC_FAR *pdwSSRCs,
/* [out] */ ULONG __RPC_FAR *pcFetched) = 0;
virtual HRESULT STDMETHODCALLTYPE Skip(
/* [in] */ ULONG cSSRCs) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
/* [out] */ IEnumSSRCs __RPC_FAR *__RPC_FAR *ppEnum) = 0;
};
#else /* C style interface */
typedef struct IEnumSSRCsVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IEnumSSRCs __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IEnumSSRCs __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IEnumSSRCs __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Next )(
IEnumSSRCs __RPC_FAR * This,
/* [in] */ ULONG cSSRCs,
/* [size_is][out] */ DWORD __RPC_FAR *pdwSSRCs,
/* [out] */ ULONG __RPC_FAR *pcFetched);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Skip )(
IEnumSSRCs __RPC_FAR * This,
/* [in] */ ULONG cSSRCs);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Reset )(
IEnumSSRCs __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clone )(
IEnumSSRCs __RPC_FAR * This,
/* [out] */ IEnumSSRCs __RPC_FAR *__RPC_FAR *ppEnum);
END_INTERFACE
} IEnumSSRCsVtbl;
interface IEnumSSRCs
{
CONST_VTBL struct IEnumSSRCsVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IEnumSSRCs_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IEnumSSRCs_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IEnumSSRCs_Release(This) \
(This)->lpVtbl -> Release(This)
#define IEnumSSRCs_Next(This,cSSRCs,pdwSSRCs,pcFetched) \
(This)->lpVtbl -> Next(This,cSSRCs,pdwSSRCs,pcFetched)
#define IEnumSSRCs_Skip(This,cSSRCs) \
(This)->lpVtbl -> Skip(This,cSSRCs)
#define IEnumSSRCs_Reset(This) \
(This)->lpVtbl -> Reset(This)
#define IEnumSSRCs_Clone(This,ppEnum) \
(This)->lpVtbl -> Clone(This,ppEnum)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IEnumSSRCs_Next_Proxy(
IEnumSSRCs __RPC_FAR * This,
/* [in] */ ULONG cSSRCs,
/* [size_is][out] */ DWORD __RPC_FAR *pdwSSRCs,
/* [out] */ ULONG __RPC_FAR *pcFetched);
void __RPC_STUB IEnumSSRCs_Next_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumSSRCs_Skip_Proxy(
IEnumSSRCs __RPC_FAR * This,
/* [in] */ ULONG cSSRCs);
void __RPC_STUB IEnumSSRCs_Skip_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumSSRCs_Reset_Proxy(
IEnumSSRCs __RPC_FAR * This);
void __RPC_STUB IEnumSSRCs_Reset_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IEnumSSRCs_Clone_Proxy(
IEnumSSRCs __RPC_FAR * This,
/* [out] */ IEnumSSRCs __RPC_FAR *__RPC_FAR *ppEnum);
void __RPC_STUB IEnumSSRCs_Clone_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IEnumSSRCs_INTERFACE_DEFINED__ */
#ifndef __IRTPDemuxFilter_INTERFACE_DEFINED__
#define __IRTPDemuxFilter_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: IRTPDemuxFilter
* at Tue Sep 09 20:17:58 1997
* using MIDL 3.03.0110
****************************************/
/* [unique][helpstring][uuid][object] */
EXTERN_C const IID IID_IRTPDemuxFilter;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("38F64CF0-A084-11d0-9CF3-00A0C9081C19")
IRTPDemuxFilter : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE EnumSSRCs(
/* [out] */ IEnumSSRCs __RPC_FAR *__RPC_FAR *ppIEnumSSRCs) = 0;
virtual HRESULT STDMETHODCALLTYPE GetPinInfo(
/* [in] */ IPin __RPC_FAR *pIPin,
/* [out] */ DWORD __RPC_FAR *pdwSSRC,
/* [out] */ BYTE __RPC_FAR *pbPT,
/* [out] */ BOOL __RPC_FAR *pbAutoMapping,
/* [out] */ DWORD __RPC_FAR *pdwTimeout) = 0;
virtual HRESULT STDMETHODCALLTYPE GetSSRCInfo(
/* [in] */ DWORD dwSSRC,
/* [out] */ BYTE __RPC_FAR *pbPT,
/* [out] */ IPin __RPC_FAR *__RPC_FAR *ppIPin) = 0;
virtual HRESULT STDMETHODCALLTYPE MapSSRCToPin(
/* [in] */ DWORD dwSSRC,
/* [in] */ IPin __RPC_FAR *pIPin) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPinCount(
/* [in] */ DWORD dwPinCount) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPinTypeInfo(
/* [in] */ IPin __RPC_FAR *pIPin,
/* [in] */ BYTE bPT,
/* [in] */ GUID gMinorType) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPinMode(
/* [in] */ IPin __RPC_FAR *pIPin,
/* [in] */ BOOL bAutomatic) = 0;
virtual HRESULT STDMETHODCALLTYPE SetPinSourceTimeout(
/* [in] */ IPin __RPC_FAR *pIPin,
/* [in] */ DWORD dwMilliseconds) = 0;
virtual HRESULT STDMETHODCALLTYPE UnmapPin(
/* [in] */ IPin __RPC_FAR *pIPin,
/* [out] */ DWORD __RPC_FAR *pdwSSRC) = 0;
virtual HRESULT STDMETHODCALLTYPE UnmapSSRC(
/* [in] */ DWORD dwSSRC,
/* [out] */ IPin __RPC_FAR *__RPC_FAR *ppIPin) = 0;
};
#else /* C style interface */
typedef struct IRTPDemuxFilterVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IRTPDemuxFilter __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IRTPDemuxFilter __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumSSRCs )(
IRTPDemuxFilter __RPC_FAR * This,
/* [out] */ IEnumSSRCs __RPC_FAR *__RPC_FAR *ppIEnumSSRCs);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetPinInfo )(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ IPin __RPC_FAR *pIPin,
/* [out] */ DWORD __RPC_FAR *pdwSSRC,
/* [out] */ BYTE __RPC_FAR *pbPT,
/* [out] */ BOOL __RPC_FAR *pbAutoMapping,
/* [out] */ DWORD __RPC_FAR *pdwTimeout);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSSRCInfo )(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ DWORD dwSSRC,
/* [out] */ BYTE __RPC_FAR *pbPT,
/* [out] */ IPin __RPC_FAR *__RPC_FAR *ppIPin);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *MapSSRCToPin )(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ DWORD dwSSRC,
/* [in] */ IPin __RPC_FAR *pIPin);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetPinCount )(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ DWORD dwPinCount);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetPinTypeInfo )(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ IPin __RPC_FAR *pIPin,
/* [in] */ BYTE bPT,
/* [in] */ GUID gMinorType);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetPinMode )(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ IPin __RPC_FAR *pIPin,
/* [in] */ BOOL bAutomatic);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetPinSourceTimeout )(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ IPin __RPC_FAR *pIPin,
/* [in] */ DWORD dwMilliseconds);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *UnmapPin )(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ IPin __RPC_FAR *pIPin,
/* [out] */ DWORD __RPC_FAR *pdwSSRC);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *UnmapSSRC )(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ DWORD dwSSRC,
/* [out] */ IPin __RPC_FAR *__RPC_FAR *ppIPin);
END_INTERFACE
} IRTPDemuxFilterVtbl;
interface IRTPDemuxFilter
{
CONST_VTBL struct IRTPDemuxFilterVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IRTPDemuxFilter_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IRTPDemuxFilter_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IRTPDemuxFilter_Release(This) \
(This)->lpVtbl -> Release(This)
#define IRTPDemuxFilter_EnumSSRCs(This,ppIEnumSSRCs) \
(This)->lpVtbl -> EnumSSRCs(This,ppIEnumSSRCs)
#define IRTPDemuxFilter_GetPinInfo(This,pIPin,pdwSSRC,pbPT,pbAutoMapping,pdwTimeout) \
(This)->lpVtbl -> GetPinInfo(This,pIPin,pdwSSRC,pbPT,pbAutoMapping,pdwTimeout)
#define IRTPDemuxFilter_GetSSRCInfo(This,dwSSRC,pbPT,ppIPin) \
(This)->lpVtbl -> GetSSRCInfo(This,dwSSRC,pbPT,ppIPin)
#define IRTPDemuxFilter_MapSSRCToPin(This,dwSSRC,pIPin) \
(This)->lpVtbl -> MapSSRCToPin(This,dwSSRC,pIPin)
#define IRTPDemuxFilter_SetPinCount(This,dwPinCount) \
(This)->lpVtbl -> SetPinCount(This,dwPinCount)
#define IRTPDemuxFilter_SetPinTypeInfo(This,pIPin,bPT,gMinorType) \
(This)->lpVtbl -> SetPinTypeInfo(This,pIPin,bPT,gMinorType)
#define IRTPDemuxFilter_SetPinMode(This,pIPin,bAutomatic) \
(This)->lpVtbl -> SetPinMode(This,pIPin,bAutomatic)
#define IRTPDemuxFilter_SetPinSourceTimeout(This,pIPin,dwMilliseconds) \
(This)->lpVtbl -> SetPinSourceTimeout(This,pIPin,dwMilliseconds)
#define IRTPDemuxFilter_UnmapPin(This,pIPin,pdwSSRC) \
(This)->lpVtbl -> UnmapPin(This,pIPin,pdwSSRC)
#define IRTPDemuxFilter_UnmapSSRC(This,dwSSRC,ppIPin) \
(This)->lpVtbl -> UnmapSSRC(This,dwSSRC,ppIPin)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IRTPDemuxFilter_EnumSSRCs_Proxy(
IRTPDemuxFilter __RPC_FAR * This,
/* [out] */ IEnumSSRCs __RPC_FAR *__RPC_FAR *ppIEnumSSRCs);
void __RPC_STUB IRTPDemuxFilter_EnumSSRCs_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRTPDemuxFilter_GetPinInfo_Proxy(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ IPin __RPC_FAR *pIPin,
/* [out] */ DWORD __RPC_FAR *pdwSSRC,
/* [out] */ BYTE __RPC_FAR *pbPT,
/* [out] */ BOOL __RPC_FAR *pbAutoMapping,
/* [out] */ DWORD __RPC_FAR *pdwTimeout);
void __RPC_STUB IRTPDemuxFilter_GetPinInfo_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRTPDemuxFilter_GetSSRCInfo_Proxy(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ DWORD dwSSRC,
/* [out] */ BYTE __RPC_FAR *pbPT,
/* [out] */ IPin __RPC_FAR *__RPC_FAR *ppIPin);
void __RPC_STUB IRTPDemuxFilter_GetSSRCInfo_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRTPDemuxFilter_MapSSRCToPin_Proxy(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ DWORD dwSSRC,
/* [in] */ IPin __RPC_FAR *pIPin);
void __RPC_STUB IRTPDemuxFilter_MapSSRCToPin_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRTPDemuxFilter_SetPinCount_Proxy(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ DWORD dwPinCount);
void __RPC_STUB IRTPDemuxFilter_SetPinCount_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRTPDemuxFilter_SetPinTypeInfo_Proxy(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ IPin __RPC_FAR *pIPin,
/* [in] */ BYTE bPT,
/* [in] */ GUID gMinorType);
void __RPC_STUB IRTPDemuxFilter_SetPinTypeInfo_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRTPDemuxFilter_SetPinMode_Proxy(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ IPin __RPC_FAR *pIPin,
/* [in] */ BOOL bAutomatic);
void __RPC_STUB IRTPDemuxFilter_SetPinMode_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRTPDemuxFilter_SetPinSourceTimeout_Proxy(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ IPin __RPC_FAR *pIPin,
/* [in] */ DWORD dwMilliseconds);
void __RPC_STUB IRTPDemuxFilter_SetPinSourceTimeout_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRTPDemuxFilter_UnmapPin_Proxy(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ IPin __RPC_FAR *pIPin,
/* [out] */ DWORD __RPC_FAR *pdwSSRC);
void __RPC_STUB IRTPDemuxFilter_UnmapPin_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IRTPDemuxFilter_UnmapSSRC_Proxy(
IRTPDemuxFilter __RPC_FAR * This,
/* [in] */ DWORD dwSSRC,
/* [out] */ IPin __RPC_FAR *__RPC_FAR *ppIPin);
void __RPC_STUB IRTPDemuxFilter_UnmapSSRC_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IRTPDemuxFilter_INTERFACE_DEFINED__ */
/****************************************
* Generated header for interface: __MIDL_itf_amrtpdmx_0296
* at Tue Sep 09 20:17:58 1997
* using MIDL 3.03.0110
****************************************/
/* [local] */
EXTERN_C const CLSID CLSID_IntelRTPDemux;
EXTERN_C const CLSID CLSID_IntelRTPDemuxPropertyPage;
extern RPC_IF_HANDLE __MIDL_itf_amrtpdmx_0296_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_amrtpdmx_0296_v0_0_s_ifspec;
/* Additional Prototypes for ALL interfaces */
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif
@@ -0,0 +1,90 @@
/*++
Copyright (c) 1996 Microsoft Corporation
Module Name:
amrtpnet.h
Abstract:
Definitions for ActiveMovie RTP Network Filters.
--*/
///////////////////////////////////////////////////////////////////////////////
// //
// RTP Filter UUIDS //
// //
///////////////////////////////////////////////////////////////////////////////
DEFINE_GUID(CLSID_RTPRenderFilter,
0x00d20921, 0x7e20, 0x11d0, 0xb2, 0x91, 0x00, 0xc0, 0x4f, 0xc3, 0x1d, 0x18);
DEFINE_GUID(CLSID_RTPRenderFilterProperties,
0x00d20923, 0x7e20, 0x11d0, 0xb2, 0x91, 0x00, 0xc0, 0x4f, 0xc3, 0x1d, 0x18);
DEFINE_GUID(CLSID_RTPSourceFilter,
0x00d20920, 0x7e20, 0x11d0, 0xb2, 0x91, 0x00, 0xc0, 0x4f, 0xc3, 0x1d, 0x18);
DEFINE_GUID(CLSID_RTPSourceFilterProperties,
0x00d20922, 0x7e20, 0x11d0, 0xb2, 0x91, 0x00, 0xc0, 0x4f, 0xc3, 0x1d, 0x18);
DEFINE_GUID(IID_IRTPStream,
0x00d20915, 0x7e20, 0x11d0, 0xb2, 0x91, 0x00, 0xc0, 0x4f, 0xc3, 0x1d, 0x18);
#ifndef _INC_AMRTPNET
#define _INC_AMRTPNET
#include <rtp.h>
///////////////////////////////////////////////////////////////////////////////
// //
// IRTPStream Interface //
// //
///////////////////////////////////////////////////////////////////////////////
DECLARE_INTERFACE_(IRTPStream, IUnknown) {
STDMETHOD(GetAddress)(THIS_
LPBYTE pRtpAddr,
LPDWORD pdwRtpAddrLen
) PURE;
STDMETHOD(SetAddress)(THIS_
LPBYTE pRtpAddr,
DWORD dwRtpAddrLen
) PURE;
STDMETHOD(GetMulticastScope)(THIS_
LPDWORD pdwMulticastScope
) PURE;
STDMETHOD(SetMulticastScope)(THIS_
DWORD dwMulticastScope
) PURE;
STDMETHOD(SetQualityOfService)(THIS_
QOS * pQOS
) PURE;
STDMETHOD(GetQOSstate)(THIS_
DWORD *pdwQOSstate
) PURE;
STDMETHOD(SetQOSstate)(THIS_
DWORD dwQOSstate
) PURE;
STDMETHOD(GetMulticastLoopBack)(THIS_
DWORD *pdwMulticastLoopBack
) PURE;
STDMETHOD(SetMulticastLoopBack)(THIS_
DWORD dwMulticastLoopBack
) PURE;
};
#endif // _INC_AMRTPNET
@@ -0,0 +1,412 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 3.03.0110 */
/* at Tue Sep 09 20:18:00 1997
*/
/* Compiler settings for amrtpss.idl:
Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: none
*/
//@@MIDL_FILE_HEADING( )
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __amrtpss_h__
#define __amrtpss_h__
#ifdef __cplusplus
extern "C"{
#endif
/* Forward Declarations */
#ifndef __ISilenceSuppressor_FWD_DEFINED__
#define __ISilenceSuppressor_FWD_DEFINED__
typedef interface ISilenceSuppressor ISilenceSuppressor;
#endif /* __ISilenceSuppressor_FWD_DEFINED__ */
/* header files for imported files */
#include "oaidl.h"
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * );
#ifndef __ISilenceSuppressor_INTERFACE_DEFINED__
#define __ISilenceSuppressor_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: ISilenceSuppressor
* at Tue Sep 09 20:18:00 1997
* using MIDL 3.03.0110
****************************************/
/* [unique][helpstring][local][uuid][object] */
EXTERN_C const IID IID_ISilenceSuppressor;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("40C1D160-52F2-11d0-A874-00AA00B5CA1B")
ISilenceSuppressor : public IUnknown
{
public:
virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetPreplayBufferTime(
/* [out] */ LPDWORD lpdwPreplayBufferTime) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetPreplayBufferTime(
/* [in] */ DWORD dwPreplayBufferTime) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetPostplayBufferTime(
/* [out] */ LPDWORD lpdwPostplayBufferTime) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetPostplayBufferTime(
/* [in] */ DWORD dwPostplayBufferTime) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetRunningAverageTime(
/* [out] */ LPDWORD lpdwRunningAverageTime) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetRunningAverageTime(
/* [in] */ DWORD dwRunningAverageTime) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAverageIncrementor(
/* [out] */ LPDWORD lpdwAverageIncrementor) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetAverageIncrementor(
/* [in] */ DWORD dwAverageIncrementor) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetEchoThreshold(
/* [out] */ LPDWORD lpdwEchoThreshold) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetEchoThreshold(
/* [in] */ DWORD dwEchoThreshold) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetUseAverageEnergyFunction(
/* [out] */ BOOL __RPC_FAR *lpfUseAverageEnergyFunction) = 0;
virtual /* [id] */ HRESULT STDMETHODCALLTYPE SetUseAverageEnergyFunction(
/* [in] */ BOOL fUseAverageEnergyFunction) = 0;
};
#else /* C style interface */
typedef struct ISilenceSuppressorVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
ISilenceSuppressor __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
ISilenceSuppressor __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
ISilenceSuppressor __RPC_FAR * This);
/* [id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetPreplayBufferTime )(
ISilenceSuppressor __RPC_FAR * This,
/* [out] */ LPDWORD lpdwPreplayBufferTime);
/* [id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetPreplayBufferTime )(
ISilenceSuppressor __RPC_FAR * This,
/* [in] */ DWORD dwPreplayBufferTime);
/* [id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetPostplayBufferTime )(
ISilenceSuppressor __RPC_FAR * This,
/* [out] */ LPDWORD lpdwPostplayBufferTime);
/* [id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetPostplayBufferTime )(
ISilenceSuppressor __RPC_FAR * This,
/* [in] */ DWORD dwPostplayBufferTime);
/* [id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetRunningAverageTime )(
ISilenceSuppressor __RPC_FAR * This,
/* [out] */ LPDWORD lpdwRunningAverageTime);
/* [id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetRunningAverageTime )(
ISilenceSuppressor __RPC_FAR * This,
/* [in] */ DWORD dwRunningAverageTime);
/* [id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAverageIncrementor )(
ISilenceSuppressor __RPC_FAR * This,
/* [out] */ LPDWORD lpdwAverageIncrementor);
/* [id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAverageIncrementor )(
ISilenceSuppressor __RPC_FAR * This,
/* [in] */ DWORD dwAverageIncrementor);
/* [id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetEchoThreshold )(
ISilenceSuppressor __RPC_FAR * This,
/* [out] */ LPDWORD lpdwEchoThreshold);
/* [id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetEchoThreshold )(
ISilenceSuppressor __RPC_FAR * This,
/* [in] */ DWORD dwEchoThreshold);
/* [id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetUseAverageEnergyFunction )(
ISilenceSuppressor __RPC_FAR * This,
/* [out] */ BOOL __RPC_FAR *lpfUseAverageEnergyFunction);
/* [id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetUseAverageEnergyFunction )(
ISilenceSuppressor __RPC_FAR * This,
/* [in] */ BOOL fUseAverageEnergyFunction);
END_INTERFACE
} ISilenceSuppressorVtbl;
interface ISilenceSuppressor
{
CONST_VTBL struct ISilenceSuppressorVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define ISilenceSuppressor_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define ISilenceSuppressor_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define ISilenceSuppressor_Release(This) \
(This)->lpVtbl -> Release(This)
#define ISilenceSuppressor_GetPreplayBufferTime(This,lpdwPreplayBufferTime) \
(This)->lpVtbl -> GetPreplayBufferTime(This,lpdwPreplayBufferTime)
#define ISilenceSuppressor_SetPreplayBufferTime(This,dwPreplayBufferTime) \
(This)->lpVtbl -> SetPreplayBufferTime(This,dwPreplayBufferTime)
#define ISilenceSuppressor_GetPostplayBufferTime(This,lpdwPostplayBufferTime) \
(This)->lpVtbl -> GetPostplayBufferTime(This,lpdwPostplayBufferTime)
#define ISilenceSuppressor_SetPostplayBufferTime(This,dwPostplayBufferTime) \
(This)->lpVtbl -> SetPostplayBufferTime(This,dwPostplayBufferTime)
#define ISilenceSuppressor_GetRunningAverageTime(This,lpdwRunningAverageTime) \
(This)->lpVtbl -> GetRunningAverageTime(This,lpdwRunningAverageTime)
#define ISilenceSuppressor_SetRunningAverageTime(This,dwRunningAverageTime) \
(This)->lpVtbl -> SetRunningAverageTime(This,dwRunningAverageTime)
#define ISilenceSuppressor_GetAverageIncrementor(This,lpdwAverageIncrementor) \
(This)->lpVtbl -> GetAverageIncrementor(This,lpdwAverageIncrementor)
#define ISilenceSuppressor_SetAverageIncrementor(This,dwAverageIncrementor) \
(This)->lpVtbl -> SetAverageIncrementor(This,dwAverageIncrementor)
#define ISilenceSuppressor_GetEchoThreshold(This,lpdwEchoThreshold) \
(This)->lpVtbl -> GetEchoThreshold(This,lpdwEchoThreshold)
#define ISilenceSuppressor_SetEchoThreshold(This,dwEchoThreshold) \
(This)->lpVtbl -> SetEchoThreshold(This,dwEchoThreshold)
#define ISilenceSuppressor_GetUseAverageEnergyFunction(This,lpfUseAverageEnergyFunction) \
(This)->lpVtbl -> GetUseAverageEnergyFunction(This,lpfUseAverageEnergyFunction)
#define ISilenceSuppressor_SetUseAverageEnergyFunction(This,fUseAverageEnergyFunction) \
(This)->lpVtbl -> SetUseAverageEnergyFunction(This,fUseAverageEnergyFunction)
#endif /* COBJMACROS */
#endif /* C style interface */
/* [id] */ HRESULT STDMETHODCALLTYPE ISilenceSuppressor_GetPreplayBufferTime_Proxy(
ISilenceSuppressor __RPC_FAR * This,
/* [out] */ LPDWORD lpdwPreplayBufferTime);
void __RPC_STUB ISilenceSuppressor_GetPreplayBufferTime_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ISilenceSuppressor_SetPreplayBufferTime_Proxy(
ISilenceSuppressor __RPC_FAR * This,
/* [in] */ DWORD dwPreplayBufferTime);
void __RPC_STUB ISilenceSuppressor_SetPreplayBufferTime_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ISilenceSuppressor_GetPostplayBufferTime_Proxy(
ISilenceSuppressor __RPC_FAR * This,
/* [out] */ LPDWORD lpdwPostplayBufferTime);
void __RPC_STUB ISilenceSuppressor_GetPostplayBufferTime_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ISilenceSuppressor_SetPostplayBufferTime_Proxy(
ISilenceSuppressor __RPC_FAR * This,
/* [in] */ DWORD dwPostplayBufferTime);
void __RPC_STUB ISilenceSuppressor_SetPostplayBufferTime_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ISilenceSuppressor_GetRunningAverageTime_Proxy(
ISilenceSuppressor __RPC_FAR * This,
/* [out] */ LPDWORD lpdwRunningAverageTime);
void __RPC_STUB ISilenceSuppressor_GetRunningAverageTime_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ISilenceSuppressor_SetRunningAverageTime_Proxy(
ISilenceSuppressor __RPC_FAR * This,
/* [in] */ DWORD dwRunningAverageTime);
void __RPC_STUB ISilenceSuppressor_SetRunningAverageTime_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ISilenceSuppressor_GetAverageIncrementor_Proxy(
ISilenceSuppressor __RPC_FAR * This,
/* [out] */ LPDWORD lpdwAverageIncrementor);
void __RPC_STUB ISilenceSuppressor_GetAverageIncrementor_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ISilenceSuppressor_SetAverageIncrementor_Proxy(
ISilenceSuppressor __RPC_FAR * This,
/* [in] */ DWORD dwAverageIncrementor);
void __RPC_STUB ISilenceSuppressor_SetAverageIncrementor_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ISilenceSuppressor_GetEchoThreshold_Proxy(
ISilenceSuppressor __RPC_FAR * This,
/* [out] */ LPDWORD lpdwEchoThreshold);
void __RPC_STUB ISilenceSuppressor_GetEchoThreshold_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ISilenceSuppressor_SetEchoThreshold_Proxy(
ISilenceSuppressor __RPC_FAR * This,
/* [in] */ DWORD dwEchoThreshold);
void __RPC_STUB ISilenceSuppressor_SetEchoThreshold_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ISilenceSuppressor_GetUseAverageEnergyFunction_Proxy(
ISilenceSuppressor __RPC_FAR * This,
/* [out] */ BOOL __RPC_FAR *lpfUseAverageEnergyFunction);
void __RPC_STUB ISilenceSuppressor_GetUseAverageEnergyFunction_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
/* [id] */ HRESULT STDMETHODCALLTYPE ISilenceSuppressor_SetUseAverageEnergyFunction_Proxy(
ISilenceSuppressor __RPC_FAR * This,
/* [in] */ BOOL fUseAverageEnergyFunction);
void __RPC_STUB ISilenceSuppressor_SetUseAverageEnergyFunction_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __ISilenceSuppressor_INTERFACE_DEFINED__ */
/****************************************
* Generated header for interface: __MIDL_itf_amrtpss_0094
* at Tue Sep 09 20:18:00 1997
* using MIDL 3.03.0110
****************************************/
/* [local] */
EXTERN_C const CLSID CLSID_SilenceSuppressionFilter;
EXTERN_C const CLSID CLSID_SilenceSuppressionProperties;
extern RPC_IF_HANDLE __MIDL_itf_amrtpss_0094_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_amrtpss_0094_v0_0_s_ifspec;
/* Additional Prototypes for ALL interfaces */
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif
@@ -0,0 +1,101 @@
///*M*
// INTEL CORPORATION PROPRIETARY INFORMATION
// This software is supplied under the terms of a licence agreement or
// nondisclosure agreement with Intel Corporation and may not be copied
// or disclosed except in accordance with the terms of that agreement.
// Copyright (c) 1997 Intel Corporation. All Rights Reserved.
//
// Filename : AMRTPUID.h
// Purpose : Define the UIDs used in the ActiveMovie RTP architecture.
// Contents :
// MEDIATYPE_RTP_Single_Stream Defines an RTP stream which
// only contains media samples from a single source.
// MEDIATYPE_RTP_Multiple_Stream Defines an RTP stream which
// may contain media samples from many sources (eg, a multicast
// conference.)
// MEDIASUBTYPE_RTP_Payload_Mixed A subtype of MEDIATYPE_RTP_Multiple_Stream,
// indicates that the stream may consist or RTP packets with
// many different PT values.
// MEDIASUBTYPE_RTP_Payload_G711U A subtype of MEDIATYPE_RTP_Single_Stream
// or MEDIATYPE_RTP_Multiple_Stream. Indicates that the stream(s)
// are all of the same payload type (e.g., G.711 Mulaw Audio)
// MEDIASUBTYPE_RTP_Payload_G711A A subtype of MEDIATYPE_RTP_Single_Stream
// or MEDIATYPE_RTP_Multiple_Stream. Indicates that the stream(s)
// are all of the same payload type (e.g., G.711 Alaw Audio)
// MEDIASUBTYPE_RTP_Payload_G723 A subtype of MEDIATYPE_RTP_Single_Stream
// or MEDIATYPE_RTP_Multiple_Stream. Indicates that the stream(s)
// are all of the same payload type (e.g., G.723 Audio)
// MEDIASUBTYPE_RTP_Payload_H261 A subtype of MEDIATYPE_RTP_Single_Stream
// or MEDIATYPE_RTP_Multiple_Stream. Indicates that the stream(s)
// are all of the same payload type (e.g., H.261 Video)
// MEDIASUBTYPE_RTP_Payload_H263 A subtype of MEDIATYPE_RTP_Single_Stream
// or MEDIATYPE_RTP_Multiple_Stream. Indicates that the stream(s)
// are all of the same payload type (e.g., H.263 Video)
// MEDIASUBTYPE_RTP_Payload_ANY A subtype of MEDIATYPE_RTP_Single_Stream
// or MEDIATYPE_RTP_Multiple_Stream. Indicates that the stream(s)
// are all of the same payload type, but the actual type is not set.
// MEDIASUBTYPE_H263EX A subtype of MEDIATYPE_Video. Indicates that the stream(s)
// are all of the same media type (e.g., H.263 Extended Bitstream Video)
// MEDIASUBTYPE_H261EX A subtype of MEDIATYPE_Video. Indicates that the stream(s)
// are all of the same media type (e.g., H.261 Extended Bitstream Video)
//*M*/
#ifndef OUR_GUID_ENTRY
#define OUR_GUID_ENTRY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8);
#endif
// {14099BC0-787B-11d0-9CD3-00A0C9081C19}
OUR_GUID_ENTRY(MEDIATYPE_RTP_Single_Stream,
0x14099bc0, 0x787b, 0x11d0, 0x9c, 0xd3, 0x0, 0xa0, 0xc9, 0x8, 0x1c, 0x19);
// {14099BC1-787B-11d0-9CD3-00A0C9081C19}
OUR_GUID_ENTRY(MEDIATYPE_RTP_Multiple_Stream,
0x14099bc1, 0x787b, 0x11d0, 0x9c, 0xd3, 0x0, 0xa0, 0xc9, 0x8, 0x1c, 0x19);
// {14099BC2-787B-11d0-9CD3-00A0C9081C19}
OUR_GUID_ENTRY(MEDIASUBTYPE_RTP_Payload_Mixed,
0x14099bc2, 0x787b, 0x11d0, 0x9c, 0xd3, 0x0, 0xa0, 0xc9, 0x8, 0x1c, 0x19);
// {14099BC3-787B-11d0-9CD3-00A0C9081C19}
OUR_GUID_ENTRY(MEDIASUBTYPE_RTP_Payload_G711U,
0x14099bc3, 0x787b, 0x11d0, 0x9c, 0xd3, 0x0, 0xa0, 0xc9, 0x8, 0x1c, 0x19);
// {14099BC4-787B-11d0-9CD3-00A0C9081C19}
OUR_GUID_ENTRY(MEDIASUBTYPE_RTP_Payload_G711A,
0x14099bc4, 0x787b, 0x11d0, 0x9c, 0xd3, 0x0, 0xa0, 0xc9, 0x8, 0x1c, 0x19);
// {14099BC5-787B-11d0-9CD3-00A0C9081C19}
OUR_GUID_ENTRY(MEDIASUBTYPE_RTP_Payload_G723,
0x14099bc5, 0x787b, 0x11d0, 0x9c, 0xd3, 0x0, 0xa0, 0xc9, 0x8, 0x1c, 0x19);
// {14099BC6-787B-11d0-9CD3-00A0C9081C19}
OUR_GUID_ENTRY(MEDIASUBTYPE_RTP_Payload_H261,
0x14099bc6, 0x787b, 0x11d0, 0x9c, 0xd3, 0x0, 0xa0, 0xc9, 0x8, 0x1c, 0x19);
// {14099BC7-787B-11d0-9CD3-00A0C9081C19}
OUR_GUID_ENTRY(MEDIASUBTYPE_RTP_Payload_H263,
0x14099bc7, 0x787b, 0x11d0, 0x9c, 0xd3, 0x0, 0xa0, 0xc9, 0x8, 0x1c, 0x19);
// {14099BCA-787B-11d0-9CD3-00A0C9081C19}
OUR_GUID_ENTRY(MEDIASUBTYPE_RTP_Payload_ANY,
0x14099bc8, 0x787b, 0x11d0, 0x9c, 0xd3, 0x0, 0xa0, 0xc9, 0x8, 0x1c, 0x19);
// {33363248-0000-0010-8000-00AA00389B71}
OUR_GUID_ENTRY(MEDIASUBTYPE_H263,
0x33363248, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
// {14099BC8-787B-11d0-9CD3-00A0C9081C19}
OUR_GUID_ENTRY(MEDIASUBTYPE_H263EX,
0x14099bc8, 0x787b, 0x11d0, 0x9c, 0xd3, 0x0, 0xa0, 0xc9, 0x8, 0x1c, 0x19);
// {31363248-0000-0010-8000-00AA00389B71}
OUR_GUID_ENTRY(MEDIASUBTYPE_H261,
0x31363248, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71);
// {14099BC9-787B-11d0-9CD3-00A0C9081C19}
OUR_GUID_ENTRY(MEDIASUBTYPE_H261EX,
0x14099bc9, 0x787b, 0x11d0, 0x9c, 0xd3, 0x0, 0xa0, 0xc9, 0x8, 0x1c, 0x19);
#undef OUR_GUID_ENTRY
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,320 @@
import "unknwn.idl";
import "mmstream.idl";
import "strmif.idl";
cpp_quote("#include <ddraw.h>")
cpp_quote("#include <mmstream.h>")
cpp_quote("#include <ddstream.h>")
cpp_quote("#include <austream.h>")
interface IAMMultiMediaStream;
interface IAMMediaStream;
interface IMediaStreamFilter;
interface IDirectDraw;
interface IDirectDrawSurface;
interface IAMMediaTypeStream;
interface IAMMediaTypeSample;
// Flags definitions for Initialize
enum {
AMMSF_NOGRAPHTHREAD = 0x00000001
};
// Flags definitions for AddMediaStream
enum {
// Don't add a stream - create a default renderer instead
// for the supplied purpose id
AMMSF_ADDDEFAULTRENDERER = 0x00000001,
AMMSF_CREATEPEER = 0x00000002
};
// Flag definitions for OpenFile and OpenMoniker
enum {
AMMSF_RENDERTYPEMASK = 0x00000003,
AMMSF_RENDERTOEXISTING = 0x00000000,
AMMSF_RENDERALLSTREAMS = 0x00000001,
AMMSF_NORENDER = 0x00000002,
AMMSF_NOCLOCK = 0x00000004,
AMMSF_RUN = 0x00000008
};
typedef [v1_enum] enum {
Disabled = 0,
ReadData = 1,
RenderData = 2
} OUTPUT_STATE;
[
object,
uuid(7DB01C96-C0C3-11d0-8FF1-00C04FD9189D),
dual,
helpstring("IDirectShowStream Interface"),
pointer_default(unique)
]
interface IDirectShowStream : IDispatch
{
[propget, id(1), helpstring("property FileName")] HRESULT FileName([out, retval] BSTR *pVal);
[propput, id(1), helpstring("property FileName")] HRESULT FileName([in] BSTR newVal);
[propget, id(2), helpstring("property Video")] HRESULT Video([out, retval] OUTPUT_STATE *pVal);
[propput, id(2), helpstring("propetry Video")] HRESULT Video([in] OUTPUT_STATE newVal);
[propget, id(3), helpstring("property Audio")] HRESULT Audio([out, retval] OUTPUT_STATE *pVal);
[propput, id(3), helpstring("propetry Audio")] HRESULT Audio([in] OUTPUT_STATE newVal);
};
// IAMMultiMediaStream interface
[
object,
uuid(BEBE595C-9A6F-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IAMMultiMediaStream : IMultiMediaStream
{
HRESULT Initialize(
[in] STREAM_TYPE StreamType,
[in] DWORD dwFlags,
[in] [optional] IGraphBuilder *pFilterGraph);
HRESULT GetFilterGraph(
[out] IGraphBuilder **ppGraphBuilder);
HRESULT GetFilter(
[out] IMediaStreamFilter **ppFilter);
HRESULT AddMediaStream(
[in] [optional] IUnknown *pStreamObject,
[in] [optional] const MSPID *PurposeId,
[in] DWORD dwFlags,
[out] [optional] IMediaStream **ppNewStream);
HRESULT OpenFile(
[in] LPCWSTR pszFileName,
[in] DWORD dwFlags);
HRESULT OpenMoniker(
[in] IBindCtx *pCtx,
[in] IMoniker *pMoniker,
[in] DWORD dwFlags);
HRESULT Render(
[in] DWORD dwFlags);
}
// IAMMediaStream interface
[
object,
uuid(BEBE595D-9A6F-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IAMMediaStream : IMediaStream
{
HRESULT Initialize(
[in] [optional] IUnknown *pSourceObject,
[in] DWORD dwFlags,
[in] REFMSPID PurposeId,
[in] const STREAM_TYPE StreamType);
HRESULT SetState(
[in] FILTER_STATE State);
HRESULT JoinAMMultiMediaStream(
[in] IAMMultiMediaStream *pAMMultiMediaStream);
HRESULT JoinFilter(
[in] IMediaStreamFilter *pMediaStreamFilter);
HRESULT JoinFilterGraph(
[in] IFilterGraph *pFilterGraph);
};
// IMediaStreamFilter interface
[
object,
local,
uuid(BEBE595E-9A6F-11d0-8FDE-00C04FD9189D),
pointer_default(unique)
]
interface IMediaStreamFilter : IBaseFilter
{
HRESULT AddMediaStream(
[in] IAMMediaStream *pAMMediaStream);
HRESULT GetMediaStream(
[in] REFMSPID idPurpose,
[out] IMediaStream **ppMediaStream);
HRESULT EnumMediaStreams(
[in] long Index,
[out] IMediaStream **ppMediaStream);
HRESULT SupportSeeking(
[in] BOOL bRenderer);
HRESULT ReferenceTimeToStreamTime(
[in] [out] REFERENCE_TIME *pTime);
HRESULT GetCurrentStreamTime(
[out] REFERENCE_TIME *pCurrentStreamTime);
HRESULT WaitUntil(
[in] REFERENCE_TIME WaitStreamTime);
HRESULT Flush(
[in] BOOL bCancelEOS);
HRESULT EndOfStream();
};
[
object,
local,
uuid(AB6B4AFC-F6E4-11d0-900D-00C04FD9189D),
pointer_default(unique)
]
interface IDirectDrawMediaSampleAllocator : IUnknown
{
HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw);
};
[
object,
local,
uuid(AB6B4AFE-F6E4-11d0-900D-00C04FD9189D),
pointer_default(unique)
]
interface IDirectDrawMediaSample : IUnknown
{
HRESULT GetSurfaceAndReleaseLock(
[out] IDirectDrawSurface **ppDirectDrawSurface,
[out] RECT * pRect);
HRESULT LockMediaSamplePointer(void);
};
[
object,
local,
uuid(AB6B4AFA-F6E4-11d0-900D-00C04FD9189D),
pointer_default(unique)
]
interface IAMMediaTypeStream : IMediaStream
{
HRESULT GetFormat(
[out] AM_MEDIA_TYPE * pMediaType,
[in] DWORD dwFlags);
HRESULT SetFormat(
[in] AM_MEDIA_TYPE * pMediaType,
[in] DWORD dwFlags);
HRESULT CreateSample(
[in] long lSampleSize,
[in] [optional] BYTE * pbBuffer,
[in] DWORD dwFlags,
[in] [optional] IUnknown *pUnkOuter,
[out] IAMMediaTypeSample ** ppAMMediaTypeSample);
HRESULT GetStreamAllocatorRequirements(
[out] ALLOCATOR_PROPERTIES *pProps);
HRESULT SetStreamAllocatorRequirements(
[in] ALLOCATOR_PROPERTIES *pProps);
};
[
object,
local,
uuid(AB6B4AFB-F6E4-11d0-900D-00C04FD9189D),
pointer_default(unique)
]
interface IAMMediaTypeSample : IStreamSample
{
//
// Unique methods for IAMMediaTypeSample
//
HRESULT SetPointer([in] BYTE *pBuffer, [in] long lSize);
//
// Mirror of IMediaSample
//
HRESULT GetPointer([out] BYTE ** ppBuffer);
long GetSize(void);
HRESULT GetTime([out] REFERENCE_TIME * pTimeStart, [out] REFERENCE_TIME * pTimeEnd);
HRESULT SetTime([in] REFERENCE_TIME * pTimeStart, [in] REFERENCE_TIME * pTimeEnd);
HRESULT IsSyncPoint(void);
HRESULT SetSyncPoint(BOOL bIsSyncPoint);
HRESULT IsPreroll(void);
HRESULT SetPreroll(BOOL bIsPreroll);
long GetActualDataLength(void);
HRESULT SetActualDataLength(long);
HRESULT GetMediaType(AM_MEDIA_TYPE **ppMediaType);
HRESULT SetMediaType(AM_MEDIA_TYPE *pMediaType);
HRESULT IsDiscontinuity(void);
HRESULT SetDiscontinuity(BOOL bDiscontinuity);
HRESULT GetMediaTime([out] LONGLONG * pTimeStart, [out] LONGLONG * pTimeEnd);
HRESULT SetMediaTime([in] LONGLONG * pTimeStart, [in] LONGLONG * pTimeEnd);
};
[
uuid(4E6CDE29-C0C4-11d0-8FF1-00C04FD9189D),
version(1.0),
helpstring("DirectShowStream 1.0 Type Library")
]
library DirectShowStreamLib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[
uuid(49c47ce5-9ba4-11d0-8212-00c04fc32c45),
helpstring("DirectShow Multi Media Stream")
]
coclass AMMultiMediaStream
{
[default] dispinterface IDirectShowStream;
};
};
//
// The MIDL compiler wants to produce a CLSID for everything defined in
// our type library, but it also wants to generate huge, fat proxy code
// so we use DEFINE_GUID for all other classes. It has another interesting
// bug in that it defines CLSID_AMMultiMediaStream within a #ifdef __cplusplus
// block, so we need to define it outside of that scope.
//
cpp_quote("#ifndef __cplusplus")
cpp_quote("EXTERN_C const CLSID CLSID_AMMultiMediaStream;")
cpp_quote("#endif")
cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, /* 49c47ce4-9ba4-11d0-8212-00c04fc32c45 */")
cpp_quote("0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
cpp_quote("DEFINE_GUID(CLSID_AMAudioStream, /* 8496e040-af4c-11d0-8212-00c04fc32c45 */")
cpp_quote("0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
cpp_quote("DEFINE_GUID(CLSID_AMAudioData, /* f2468580-af8a-11d0-8212-00c04fc32c45 */")
cpp_quote("0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream, /* CF0F2F7C-F7BF-11d0-900D-00C04FD9189D */")
cpp_quote("0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0xd, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
@@ -0,0 +1,417 @@
//==========================================================================;
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
// Copyright (c) 1992 - 1997 Microsoft Corporation. All Rights Reserved.
//
//--------------------------------------------------------------------------;
// Video related definitions and interfaces for ActiveMovie
#ifndef __AMVIDEO__
#define __AMVIDEO__
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
#include <ddraw.h>
// This is an interface on the video renderer that provides information about
// DirectDraw with respect to its use by the renderer. For example it allows
// an application to get details of the surface and any hardware capabilities
// that are available. It also allows someone to adjust the surfaces that the
// renderer should use and furthermore even set the DirectDraw instance. We
// allow someone to set the DirectDraw instance because DirectDraw can only
// be opened once per process so it helps resolve conflicts. There is some
// duplication in this interface as the hardware/emulated/FOURCCs available
// can all be found through the IDirectDraw interface, this interface allows
// simple access to that information without calling the DirectDraw provider
// itself. The AMDDS prefix is ActiveMovie DirectDraw Switches abbreviated.
#define AMDDS_NONE 0x00 // No use for DCI/DirectDraw
#define AMDDS_DCIPS 0x01 // Use DCI primary surface
#define AMDDS_PS 0x02 // Use DirectDraw primary
#define AMDDS_RGBOVR 0x04 // RGB overlay surfaces
#define AMDDS_YUVOVR 0x08 // YUV overlay surfaces
#define AMDDS_RGBOFF 0x10 // RGB offscreen surfaces
#define AMDDS_YUVOFF 0x20 // YUV offscreen surfaces
#define AMDDS_RGBFLP 0x40 // RGB flipping surfaces
#define AMDDS_YUVFLP 0x80 // YUV flipping surfaces
#define AMDDS_ALL 0xFF // ALL the previous flags
#define AMDDS_DEFAULT AMDDS_ALL // Use all available surfaces
#define AMDDS_YUV (AMDDS_YUVOFF | AMDDS_YUVOVR | AMDDS_YUVFLP)
#define AMDDS_RGB (AMDDS_RGBOFF | AMDDS_RGBOVR | AMDDS_RGBFLP)
#define AMDDS_PRIMARY (AMDDS_DCIPS | AMDDS_PS)
// be nice to our friends in C
#undef INTERFACE
#define INTERFACE IDirectDrawVideo
DECLARE_INTERFACE_(IDirectDrawVideo, IUnknown)
{
// IUnknown methods
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
// IDirectDrawVideo methods
STDMETHOD(GetSwitches)(THIS_ DWORD *pSwitches) PURE;
STDMETHOD(SetSwitches)(THIS_ DWORD Switches) PURE;
STDMETHOD(GetCaps)(THIS_ DDCAPS *pCaps) PURE;
STDMETHOD(GetEmulatedCaps)(THIS_ DDCAPS *pCaps) PURE;
STDMETHOD(GetSurfaceDesc)(THIS_ DDSURFACEDESC *pSurfaceDesc) PURE;
STDMETHOD(GetFourCCCodes)(THIS_ DWORD *pCount,DWORD *pCodes) PURE;
STDMETHOD(SetDirectDraw)(THIS_ LPDIRECTDRAW pDirectDraw) PURE;
STDMETHOD(GetDirectDraw)(THIS_ LPDIRECTDRAW *ppDirectDraw) PURE;
STDMETHOD(GetSurfaceType)(THIS_ DWORD *pSurfaceType) PURE;
STDMETHOD(SetDefault)(THIS) PURE;
STDMETHOD(UseScanLine)(THIS_ long UseScanLine) PURE;
STDMETHOD(CanUseScanLine)(THIS_ long *UseScanLine) PURE;
STDMETHOD(UseOverlayStretch)(THIS_ long UseOverlayStretch) PURE;
STDMETHOD(CanUseOverlayStretch)(THIS_ long *UseOverlayStretch) PURE;
STDMETHOD(UseWhenFullScreen)(THIS_ long UseWhenFullScreen) PURE;
STDMETHOD(WillUseFullScreen)(THIS_ long *UseWhenFullScreen) PURE;
};
// be nice to our friends in C
#undef INTERFACE
#define INTERFACE IQualProp
DECLARE_INTERFACE_(IQualProp, IUnknown)
{
// IUnknown methods
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
// Compare these with the functions in class CGargle in gargle.h
STDMETHOD(get_FramesDroppedInRenderer)(THIS_ int *pcFrames) PURE; // Out
STDMETHOD(get_FramesDrawn)(THIS_ int *pcFramesDrawn) PURE; // Out
STDMETHOD(get_AvgFrameRate)(THIS_ int *piAvgFrameRate) PURE; // Out
STDMETHOD(get_Jitter)(THIS_ int *iJitter) PURE; // Out
STDMETHOD(get_AvgSyncOffset)(THIS_ int *piAvg) PURE; // Out
STDMETHOD(get_DevSyncOffset)(THIS_ int *piDev) PURE; // Out
};
// This interface allows an application or plug in distributor to control a
// full screen renderer. The Modex renderer supports this interface. When
// connected a renderer should load the display modes it has available
// The number of modes available can be obtained through CountModes. Then
// information on each individual mode is available by calling GetModeInfo
// and IsModeAvailable. An application may enable and disable any modes
// by calling the SetEnabled flag with OATRUE or OAFALSE (not C/C++ TRUE
// and FALSE values) - the current value may be queried by IsModeEnabled
// A more generic way of setting the modes enabled that is easier to use
// when writing applications is the clip loss factor. This defines the
// amount of video that can be lost when deciding which display mode to
// use. Assuming the decoder cannot compress the video then playing an
// MPEG file (say 352x288) into a 320x200 display will lose about 25% of
// the image. The clip loss factor specifies the upper range permissible.
// To allow typical MPEG video to be played in 320x200 it defaults to 25%
// be nice to our friends in C
#undef INTERFACE
#define INTERFACE IFullScreenVideo
DECLARE_INTERFACE_(IFullScreenVideo, IUnknown)
{
// IUnknown methods
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
// IFullScreenVideo methods
STDMETHOD(CountModes)(THIS_ long *pModes) PURE;
STDMETHOD(GetModeInfo)(THIS_ long Mode,long *pWidth,long *pHeight,long *pDepth) PURE;
STDMETHOD(GetCurrentMode)(THIS_ long *pMode) PURE;
STDMETHOD(IsModeAvailable)(THIS_ long Mode) PURE;
STDMETHOD(IsModeEnabled)(THIS_ long Mode) PURE;
STDMETHOD(SetEnabled)(THIS_ long Mode,long bEnabled) PURE;
STDMETHOD(GetClipFactor)(THIS_ long *pClipFactor) PURE;
STDMETHOD(SetClipFactor)(THIS_ long ClipFactor) PURE;
STDMETHOD(SetMessageDrain)(THIS_ HWND hwnd) PURE;
STDMETHOD(GetMessageDrain)(THIS_ HWND *hwnd) PURE;
STDMETHOD(SetMonitor)(THIS_ long Monitor) PURE;
STDMETHOD(GetMonitor)(THIS_ long *Monitor) PURE;
STDMETHOD(HideOnDeactivate)(THIS_ long Hide) PURE;
STDMETHOD(IsHideOnDeactivate)(THIS) PURE;
STDMETHOD(SetCaption)(THIS_ BSTR strCaption) PURE;
STDMETHOD(GetCaption)(THIS_ BSTR *pstrCaption) PURE;
STDMETHOD(SetDefault)(THIS) PURE;
};
// This adds the accelerator table capabilities in fullscreen. This is being
// added between the original runtime release and the full SDK release. We
// cannot just add the method to IFullScreenVideo as we don't want to force
// applications to have to ship the ActiveMovie support DLLs - this is very
// important to applications that plan on being downloaded over the Internet
// be nice to our friends in C
#undef INTERFACE
#define INTERFACE IFullScreenVideoEx
DECLARE_INTERFACE_(IFullScreenVideoEx, IFullScreenVideo)
{
// IUnknown methods
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
// IFullScreenVideo methods
STDMETHOD(CountModes)(THIS_ long *pModes) PURE;
STDMETHOD(GetModeInfo)(THIS_ long Mode,long *pWidth,long *pHeight,long *pDepth) PURE;
STDMETHOD(GetCurrentMode)(THIS_ long *pMode) PURE;
STDMETHOD(IsModeAvailable)(THIS_ long Mode) PURE;
STDMETHOD(IsModeEnabled)(THIS_ long Mode) PURE;
STDMETHOD(SetEnabled)(THIS_ long Mode,long bEnabled) PURE;
STDMETHOD(GetClipFactor)(THIS_ long *pClipFactor) PURE;
STDMETHOD(SetClipFactor)(THIS_ long ClipFactor) PURE;
STDMETHOD(SetMessageDrain)(THIS_ HWND hwnd) PURE;
STDMETHOD(GetMessageDrain)(THIS_ HWND *hwnd) PURE;
STDMETHOD(SetMonitor)(THIS_ long Monitor) PURE;
STDMETHOD(GetMonitor)(THIS_ long *Monitor) PURE;
STDMETHOD(HideOnDeactivate)(THIS_ long Hide) PURE;
STDMETHOD(IsHideOnDeactivate)(THIS) PURE;
STDMETHOD(SetCaption)(THIS_ BSTR strCaption) PURE;
STDMETHOD(GetCaption)(THIS_ BSTR *pstrCaption) PURE;
STDMETHOD(SetDefault)(THIS) PURE;
// IFullScreenVideoEx
STDMETHOD(SetAcceleratorTable)(THIS_ HWND hwnd,HACCEL hAccel) PURE;
STDMETHOD(GetAcceleratorTable)(THIS_ HWND *phwnd,HACCEL *phAccel) PURE;
STDMETHOD(KeepPixelAspectRatio)(THIS_ long KeepAspect) PURE;
STDMETHOD(IsKeepPixelAspectRatio)(THIS_ long *pKeepAspect) PURE;
};
// The SDK base classes contain a base video mixer class. Video mixing in a
// software environment is tricky because we typically have multiple streams
// each sending data at unpredictable times. To work with this we defined a
// pin that is the lead pin, when data arrives on this pin we do a mix. As
// an alternative we may not want to have a lead pin but output samples at
// predefined spaces, like one every 1/15 of a second, this interfaces also
// supports that mode of operations (there is a working video mixer sample)
// be nice to our friends in C
#undef INTERFACE
#define INTERFACE IBaseVideoMixer
DECLARE_INTERFACE_(IBaseVideoMixer, IUnknown)
{
STDMETHOD(SetLeadPin)(THIS_ int iPin) PURE;
STDMETHOD(GetLeadPin)(THIS_ int *piPin) PURE;
STDMETHOD(GetInputPinCount)(THIS_ int *piPinCount) PURE;
STDMETHOD(IsUsingClock)(THIS_ int *pbValue) PURE;
STDMETHOD(SetUsingClock)(THIS_ int bValue) PURE;
STDMETHOD(GetClockPeriod)(THIS_ int *pbValue) PURE;
STDMETHOD(SetClockPeriod)(THIS_ int bValue) PURE;
};
#define iPALETTE_COLORS 256 // Maximum colours in palette
#define iEGA_COLORS 16 // Number colours in EGA palette
#define iMASK_COLORS 3 // Maximum three components
#define iTRUECOLOR 16 // Minimum true colour device
#define iRED 0 // Index position for RED mask
#define iGREEN 1 // Index position for GREEN mask
#define iBLUE 2 // Index position for BLUE mask
#define iPALETTE 8 // Maximum colour depth using a palette
#define iMAXBITS 8 // Maximum bits per colour component
// Used for true colour images that also have a palette
typedef struct tag_TRUECOLORINFO {
DWORD dwBitMasks[iMASK_COLORS];
RGBQUAD bmiColors[iPALETTE_COLORS];
} TRUECOLORINFO;
// The BITMAPINFOHEADER contains all the details about the video stream such
// as the actual image dimensions and their pixel depth. A source filter may
// also request that the sink take only a section of the video by providing a
// clipping rectangle in rcSource. In the worst case where the sink filter
// forgets to check this on connection it will simply render the whole thing
// which isn't a disaster. Ideally a sink filter will check the rcSource and
// if it doesn't support image extraction and the rectangle is not empty then
// it will reject the connection. A filter should use SetRectEmpty to reset a
// rectangle to all zeroes (and IsRectEmpty to later check the rectangle).
// The rcTarget specifies the destination rectangle for the video, for most
// source filters they will set this to all zeroes, a downstream filter may
// request that the video be placed in a particular area of the buffers it
// supplies in which case it will call QueryAccept with a non empty target
typedef struct tagVIDEOINFOHEADER {
RECT rcSource; // The bit we really want to use
RECT rcTarget; // Where the video should go
DWORD dwBitRate; // Approximate bit data rate
DWORD dwBitErrorRate; // Bit error rate for this stream
REFERENCE_TIME AvgTimePerFrame; // Average time per frame (100ns units)
BITMAPINFOHEADER bmiHeader;
} VIDEOINFOHEADER;
// make sure the pbmi is initialized before using these macros
#define TRUECOLOR(pbmi) ((TRUECOLORINFO *)(((LPBYTE)&((pbmi)->bmiHeader)) \
+ (pbmi)->bmiHeader.biSize))
#define COLORS(pbmi) ((RGBQUAD *)(((LPBYTE)&((pbmi)->bmiHeader)) \
+ (pbmi)->bmiHeader.biSize))
#define BITMASKS(pbmi) ((DWORD *)(((LPBYTE)&((pbmi)->bmiHeader)) \
+ (pbmi)->bmiHeader.biSize))
// All the image based filters use this to communicate their media types. It's
// centred principally around the BITMAPINFO. This structure always contains a
// BITMAPINFOHEADER followed by a number of other fields depending on what the
// BITMAPINFOHEADER contains. If it contains details of a palettised format it
// will be followed by one or more RGBQUADs defining the palette. If it holds
// details of a true colour format then it may be followed by a set of three
// DWORD bit masks that specify where the RGB data can be found in the image
// (For more information regarding BITMAPINFOs see the Win32 documentation)
// The rcSource and rcTarget fields are not for use by filters supplying the
// data. The destination (target) rectangle should be set to all zeroes. The
// source may also be zero filled or set with the dimensions of the video. So
// if the video is 352x288 pixels then set it to (0,0,352,288). These fields
// are mainly used by downstream filters that want to ask the source filter
// to place the image in a different position in an output buffer. So when
// using for example the primary surface the video renderer may ask a filter
// to place the video images in a destination position of (100,100,452,388)
// on the display since that's where the window is positioned on the display
// !!! WARNING !!!
// DO NOT use this structure unless you are sure that the BITMAPINFOHEADER
// has a normal biSize == sizeof(BITMAPINFOHEADER) !
// !!! WARNING !!!
typedef struct tagVIDEOINFO {
RECT rcSource; // The bit we really want to use
RECT rcTarget; // Where the video should go
DWORD dwBitRate; // Approximate bit data rate
DWORD dwBitErrorRate; // Bit error rate for this stream
REFERENCE_TIME AvgTimePerFrame; // Average time per frame (100ns units)
BITMAPINFOHEADER bmiHeader;
union {
RGBQUAD bmiColors[iPALETTE_COLORS]; // Colour palette
DWORD dwBitMasks[iMASK_COLORS]; // True colour masks
TRUECOLORINFO TrueColorInfo; // Both of the above
};
} VIDEOINFO;
// These macros define some standard bitmap format sizes
#define SIZE_EGA_PALETTE (iEGA_COLORS * sizeof(RGBQUAD))
#define SIZE_PALETTE (iPALETTE_COLORS * sizeof(RGBQUAD))
#define SIZE_MASKS (iMASK_COLORS * sizeof(DWORD))
#define SIZE_PREHEADER (FIELD_OFFSET(VIDEOINFOHEADER,bmiHeader))
#define SIZE_VIDEOHEADER (sizeof(BITMAPINFOHEADER) + SIZE_PREHEADER)
// !!! for abnormal biSizes
// #define SIZE_VIDEOHEADER(pbmi) ((pbmi)->bmiHeader.biSize + SIZE_PREHEADER)
// DIBSIZE calculates the number of bytes required by an image
#define WIDTHBYTES(bits) ((DWORD)(((bits)+31) & (~31)) / 8)
#define DIBWIDTHBYTES(bi) (DWORD)WIDTHBYTES((DWORD)(bi).biWidth * (DWORD)(bi).biBitCount)
#define _DIBSIZE(bi) (DIBWIDTHBYTES(bi) * (DWORD)(bi).biHeight)
#define DIBSIZE(bi) ((bi).biHeight < 0 ? (-1)*(_DIBSIZE(bi)) : _DIBSIZE(bi))
// This compares the bit masks between two VIDEOINFOHEADERs
#define BIT_MASKS_MATCH(pbmi1,pbmi2) \
(((pbmi1)->dwBitMasks[iRED] == (pbmi2)->dwBitMasks[iRED]) && \
((pbmi1)->dwBitMasks[iGREEN] == (pbmi2)->dwBitMasks[iGREEN]) && \
((pbmi1)->dwBitMasks[iBLUE] == (pbmi2)->dwBitMasks[iBLUE]))
// These zero fill different parts of the VIDEOINFOHEADER structure
// Only use these macros for pbmi's with a normal BITMAPINFOHEADER biSize
#define RESET_MASKS(pbmi) (ZeroMemory((PVOID)(pbmi)->dwBitFields,SIZE_MASKS))
#define RESET_HEADER(pbmi) (ZeroMemory((PVOID)(pbmi),SIZE_VIDEOHEADER))
#define RESET_PALETTE(pbmi) (ZeroMemory((PVOID)(pbmi)->bmiColors,SIZE_PALETTE));
#if 0
// !!! This is the right way to do it, but may break existing code
#define RESET_MASKS(pbmi) (ZeroMemory((PVOID)(((LPBYTE)(pbmi)->bmiHeader) + \
(pbmi)->bmiHeader.biSize,SIZE_MASKS)))
#define RESET_HEADER(pbmi) (ZeroMemory((PVOID)(pbmi), SIZE_PREHEADER + \
sizeof(BITMAPINFOHEADER)))
#define RESET_PALETTE(pbmi) (ZeroMemory((PVOID)(((LPBYTE)(pbmi)->bmiHeader) + \
(pbmi)->bmiHeader.biSize,SIZE_PALETTE))
#endif
// Other (hopefully) useful bits and bobs
#define PALETTISED(pbmi) ((pbmi)->bmiHeader.biBitCount <= iPALETTE)
#define PALETTE_ENTRIES(pbmi) ((DWORD) 1 << (pbmi)->bmiHeader.biBitCount)
// Returns the address of the BITMAPINFOHEADER from the VIDEOINFOHEADER
#define HEADER(pVideoInfo) (&(((VIDEOINFOHEADER *) (pVideoInfo))->bmiHeader))
// MPEG variant - includes a DWORD length followed by the
// video sequence header after the video header.
//
// The sequence header includes the sequence header start code and the
// quantization matrices associated with the first sequence header in the
// stream so is a maximum of 140 bytes long.
typedef struct tagMPEG1VIDEOINFO {
VIDEOINFOHEADER hdr; // Compatible with VIDEOINFO
DWORD dwStartTimeCode; // 25-bit Group of pictures time code
// at start of data
DWORD cbSequenceHeader; // Length in bytes of bSequenceHeader
BYTE bSequenceHeader[1]; // Sequence header including
// quantization matrices if any
} MPEG1VIDEOINFO;
#define MAX_SIZE_MPEG1_SEQUENCE_INFO 140
#define SIZE_MPEG1VIDEOINFO(pv) (FIELD_OFFSET(MPEG1VIDEOINFO, bSequenceHeader[0]) + (pv)->cbSequenceHeader)
#define MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader)
// Analog video variant - Use this when the format is FORMAT_AnalogVideo
//
// rcSource defines the portion of the active video signal to use
// rcTarget defines the destination rectangle
// both of the above are relative to the dwActiveWidth and dwActiveHeight fields
// dwActiveWidth is currently set to 720 for all formats (but could change for HDTV)
// dwActiveHeight is 483 for NTSC and 575 for PAL/SECAM (but could change for HDTV)
typedef struct tagAnalogVideoInfo {
RECT rcSource; // Width max is 720, height varies w/ TransmissionStd
RECT rcTarget; // Where the video should go
DWORD dwActiveWidth; // Always 720 (CCIR-601 active samples per line)
DWORD dwActiveHeight; // 483 for NTSC, 575 for PAL/SECAM
REFERENCE_TIME AvgTimePerFrame; // Normal ActiveMovie units (100 nS)
} ANALOGVIDEOINFO;
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // __AMVIDEO__
@@ -0,0 +1,173 @@
//==========================================================================;
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
// Copyright (c) 1992 - 1997 Microsoft Corporation. All Rights Reserved.
//
//--------------------------------------------------------------------------;
import "unknwn.idl";
import "objidl.idl"; // for IPersist (IFilter's root)
/*
* VIDOESIGNALINFO
*/
typedef struct _VIDEOSIGNALINFO
{
DWORD dwSize; // Size of the structure
DWORD dwVREFHeight; // Specifies the number of lines of data in the vref
BOOL bDoubleClock; // videoport should enable double clocking
BOOL bVACT; // videoport should use an external VACT signal
BOOL bInterlaced; // Indicates that the signal is interlaced
BOOL bHalfline; // Device will write half lines into the frame buffer
BOOL bInvertedPolarity; // Devoce inverts the polarity by default
} AMVIDEOSIGNALINFO;
typedef struct AMVIDEOSIGNALINFO *LPAMVIDEOSIGNALINFO;
interface IVPEConfig;
interface IVPE;
/*
* DDVIDEOPORTCONNECT
*/
typedef struct _DDVIDEOPORTCONNECT
{
DWORD dwSize; // size of the DDVIDEOPORTCONNECT structure
GUID guidTypeID; // Description of video port connection
DWORD dwPortWidth; // Width of the video port
DWORD dwFlags; // Connection flags
} DDVIDEOPORTCONNECT;
typedef DDVIDEOPORTCONNECT *LPDDVIDEOPORTCONNECT;
/*
* DDPIXELFORMAT
*/
typedef struct _DDPIXELFORMAT
{
DWORD dwSize; // size of structure
DWORD dwFlags; // pixel format flags
DWORD dwFourCC; // (FOURCC code)
union
{
DWORD dwRGBBitCount; // how many bits per pixel (BD_1,2,4,8,16,24,32)
DWORD dwYUVBitCount; // how many bits per pixel (BD_4,8,16,24,32)
DWORD dwZBufferBitDepth; // how many bits for z buffers (BD_8,16,24,32)
DWORD dwAlphaBitDepth; // how many bits for alpha channels (BD_1,2,4,8)
};
union
{
DWORD dwRBitMask; // mask for red bit
DWORD dwYBitMask; // mask for Y bits
};
union
{
DWORD dwGBitMask; // mask for green bits
DWORD dwUBitMask; // mask for U bits
};
union
{
DWORD dwBBitMask; // mask for blue bits
DWORD dwVBitMask; // mask for V bits
};
union
{
DWORD dwRGBAlphaBitMask; // mask for alpha channel
DWORD dwYUVAlphaBitMask; // mask for alpha channel
DWORD dwRGBZBitMask; // mask for Z channel
DWORD dwYUVZBitMask; // mask for Z channel
};
} DDPIXELFORMAT;
typedef DDPIXELFORMAT * LPDDPIXELFORMAT;
[
object,
uuid(BC29A660-30E3-11d0-9E69-00C04FD7C15B),
pointer_default(unique)
]
interface IVPEConfig : IUnknown {
// gets the various connection information structures (guid, portwidth)
// in an array of structures. If the pointer to the array is NULL, first
// parameter returns the total number of formats supported.
HRESULT GetConnectInfo(
[in,out] LPDWORD lpNumConnectInfo,
[out] LPDDVIDEOPORTCONNECT lpddvpConnectInfo
);
HRESULT SetConnectInfo(
[in] DDVIDEOPORTCONNECT ddvpConnectInfo
);
// gets the various formats supported by the decoder in an array
// of structures. If the pointer to the array is NULL, first parameter
// returns the total number of formats supported.
HRESULT GetVideoFormats(
[in,out] LPDWORD lpNumFormats,
[out] LPDDPIXELFORMAT lpddpfFormats
);
// retrives maximum pixels per second rate expected for a given
// format and a given scaling factor. If decoder does not support
// those scaling factors, then it gives the rate and the nearest
// scaling factors.
HRESULT GetMaxPixelRate(
[in] DDPIXELFORMAT ddpfFormat,
[in,out] LPDWORD lpdwZoomHeight,
[in,out] LPDWORD lpdwZoomWidth,
[out] LPDWORD lpdwMaxPixelsPerSecond
);
// retrives various properties of the decoder for a given format
HRESULT GetVideoSignalInfo(
[in] DDPIXELFORMAT ddpfFormat,
[out] LPAMVIDEOSIGNALINFO lpAMVideoSignalInfo
);
// asks the decoder to ouput in this format. Return value should give
// appropriate error code
HRESULT SetVideoFormat(
[in] DDPIXELFORMAT ddpfFormat
);
// asks the decoder to treat even fields like odd fields and visa versa
HRESULT SetInvertPolarity(
);
// sets the scaling factors. If decoder does not support these,
// then it sets the values to the nearest factors it can support
HRESULT SetScalingFactors(
[in,out] LPDWORD lpdwZoomHeight,
[in,out] LPDWORD lpdwZoomWidth
);
}
[
object,
uuid(BC29A661-30E3-11d0-9E69-00C04FD7C15B),
pointer_default(unique)
]
interface IVPE : IUnknown {
HRESULT SetOverlaySurface(
// [in] LPDIRECTDRAWSURFACE lpOverlaySurface,
[in] LPUNKNOWN lpOverlaySurface,
[in] INT iNumBackBuffers
);
}
@@ -0,0 +1,151 @@
/*
* ansiapi.h
* This file contains prototypes of ANSI version of OLE apis
* and mapping fooA to foo
*/
#ifndef _ANSIAPI_INCL
#define _ANSIAPI_INCL
#define UNICODEOLE32
#ifdef WIN32S
#if !defined(UNICODEOLE32)
#pragma message("Compiling for 32bit ANSI Ole!\n");
#endif
#endif
#define WASANSI() { \
OutputDebugString("\n\r\t\tUnicode string was ANSI!\r\n"); \
Assert(0); \
_asm { int 3 } \
}
#ifndef UNICODEOLE32
#define W2A(w, a, cb) lstrcpy (a, w)
#define A2W(a, w, cb) lstrcpy (w, a)
#define FREELOCALSTRING(p)
#define MAKE_STR_LOCAL_COPYW2A(s, l) l = s
#define MAKE_STR_LOCAL_COPYA2W(s, l) l = s
#define OLESTRCPY lstrcpy
#define OLESTRCAT lstrcat
#define OLESTRLEN lstrlen
#define OLESTRCMP lstrcmp
#define DeleteFile_AW DeleteFile
#define _lopen_AW _lopen
#define _lcreat_AW _lcreat
#define GlobalAddAtom_AW GlobalAddAtom
#define GlobalGetAtomName_AW GlobalGetAtomName
#define RegOpenKey_AW RegOpenKey
#define CoLoadLibraryA CoLoadLibrary
#define StringFromCLSID2A StringFromCLSID2
#define StringFromIID2A StringFromIID2
#define StringFromGUID2A StringFromGUID2
#define CLSIDFromProgIDA CLSIDFromProgID
#define CLSIDFromStringA CLSIDFromString
#define ProgIDFromCLSIDA ProgIDFromCLSID
#define StringFromCLSIDA StringFromCLSID
#define UtDupStringA2W UtDupString
// Storage APIs
#define StgOpenStorageA StgOpenStorage
// IPersistFile ansi translation
#define IPersistFile_LoadA(pf, file, mode) (pf)->Load(file, mode)
// IMoniker ansi translation
#define IMoniker_GetDisplayNameA(pm, p1, p2, p3) (pm)->GetDisplayName(p1,p2,p3)
#define CreateFileMonikerA CreateFileMoniker
#else // UNICODEOLE32
#define W2A(w, a, cb) WideCharToMultiByte( \
CP_ACP, \
0, \
w, \
-1, \
a, \
cb, \
NULL, \
NULL)
#define A2W(a, w, cb) MultiByteToWideChar( \
CP_ACP, \
0, \
a, \
-1, \
w, \
cb)
#define FREELOCALSTRING(p) delete (p)
#define MAKE_STR_LOCAL_COPYW2A(s, l) { \
l = UtDupStringW2A(s); \
if (!l) { \
return ResultFromScode(S_OOM); \
} \
}
#define MAKE_STR_LOCAL_COPYA2W(s, l) { \
l = UtDupStringA2W(s); \
if (!l) { \
return ResultFromScode(S_OOM); \
} \
}
#define OLESTRCPY wcscpy
#define OLESTRCAT wcscat
#define OLESTRLEN wcslen
#define OLESTRCMP wcscmp
#define DeleteFile_AW DeleteFileW
#define _lopen_AW _lopenW
#define _lcreat_AW _lcreatW
#define GlobalAddAtom_AW GlobalAddAtomW
#define GlobalGetAtomName_AW GlobalGetAtomNameW
#define RegOpenKey_AW RegOpenKeyW
//STDAPI_(HINSTANCE) CoLoadLibraryA(LPSTR lpszLibName, BOOL bAutoFree);
#define StringFromCLSID2A(rclsid, lpsz, cbMax) \
StringFromGUID2A(rclsid, lpsz, cbMax)
#define StringFromIID2A(riid, lpsz, cbMax) \
StringFromGUID2A(riid, lpsz, cbMax)
//STDAPI_(int) StringFromGUID2A(REFGUID rguid, LPSTR lpsz, int cbMax);
//STDAPI CLSIDFromProgIDA(LPCSTR szProgID, LPCLSID pclsid);
//STDAPI CLSIDFromStringA(LPSTR lpsz, LPCLSID lpclsid);
//STDAPI StringFromCLSIDA(REFCLSID rclsid, LPSTR FAR* lplpsz);
//STDAPI ProgIDFromCLSIDA (REFCLSID clsid, LPSTR FAR* lplpszProgID);
//LPWSTR UtDupStringA2W(LPCSTR pSrc);
//LPSTR UtDupStringW2A(LPCWSTR pSrc);
// Storage APIs
//STDAPI StgOpenStorageA(LPCSTR pwcsName,IStorage FAR *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage FAR * FAR *ppstgOpen);
// IPersistFile ansi translation
//HRESULT IPersistFile_LoadA(LPPERSISTFILE pIPF, LPSTR szFile, DWORD dwMode);
// IMoniker ansi translation
//HRESULT IMoniker_GetDisplayNameA(LPMONIKER pm, LPBC p1, LPMONIKER p2, LPSTR FAR *p3);
//OLEAPI CreateFileMonikerA ( LPSTR lpszPathName, LPMONIKER FAR * ppmk );
#endif // !UNICODEOLE32
#endif // _ANSIAPI_INCL
@@ -0,0 +1,147 @@
//****************************************************************************
// File: APPAVCAP.H
// Content:
// Network audio/video application capability interface. Provides
// data structures for adding, removing, enumerating, prioritizing,
// and enabling/disabling codecs independently for send/receive.
//
// Copyright (c) Microsoft Corporation 1997, All rights reserved
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//****************************************************************************
#ifndef _APPAVCAP_H
#define _APPAVCAP_H
#include <mmreg.h>
#include <msacm.h>
#include <pshpack8.h> /* Assume 8 byte packing throughout */
// For use as dimension for variable size arrays
#define VARIABLE_DIM 1
// CPU utilization numbers for NetMeeting-provided codecs
#define LNH_48_CPU 97
#define LNH_8_CPU 47
#define LNH_12_CPU 48
#define LNH_16_CPU 49
#define MS_G723_CPU 70
#define CCITT_A_CPU 24
#define CCITT_U_CPU 25
// AUDIO_FORMAT_ID is an index into an array of AUDCAPS structures
typedef DWORD AUDIO_FORMAT_ID;
#define INVALID_AUDIO_FORMAT 0xffffffff
typedef DWORD MEDIA_FORMAT_ID;
#define INVALID_MEDIA_FORMAT 0xffffffff
// VIDEO_FORMAT_ID is an index into an array of VIDCAPS structures
typedef DWORD VIDEO_FORMAT_ID;
#define INVALID_VIDEO_FORMAT 0xffffffff
/*
* @doc EXTERNAL DATASTRUC
*
* AUDIO capabilities info structure
*
* @struct AUDCAP_INFO | AUDIO capabilities info structure.
* Use for both input and output when calling capabilties APIs.
* The fields are input-only, output-only or input/output depending on the API used.
* Behavior is undefined if these are altered.
*/
// basic audcap structure
typedef struct BasicAudCapInfo
{
WORD wFormatTag; // @field The ACM format tag
AUDIO_FORMAT_ID Id; // @field (OUTPUT only) The local id (a.k.a. *Handle*) of this capability entry
char szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; // @field (OUTPUT only) Descriptive string of
// the format, e.g. "Microsoft GSM 6.10"
UINT uMaxBitrate; // @field (OUTPUT only) Worst case bitrate
UINT uAvgBitrate; // @field The average bitrate for this codec
WORD wCPUUtilizationEncode; // @field % of Pentium 90Mhz needed for compress
WORD wCPUUtilizationDecode; // @field % of Pentium 90Mhz needed for decompress
BOOL bSendEnabled; // @field OK to use this format for sending
BOOL bRecvEnabled; // @field OK to use this format for receiving
WORD wSortIndex; // @field The ordered position of this entry
// in the capability table. Can be used as input only
// in ReorderFormats
}BASIC_AUDCAP_INFO, *PBASIC_AUDCAP_INFO, AUDCAP_INFO, *PAUDCAP_INFO;
/*
* @struct AUDCAP_INFO_LIST | List of AUDCAP_INFO structures
*/
typedef struct _audcapinfolist
{
ULONG cFormats; // @field Number of AUDCAP_INFO structures in this list
AUDCAP_INFO aFormats[VARIABLE_DIM]; // @field cFormats AUDCAP_INFO structures
} AUDCAP_INFO_LIST, *PAUDCAP_INFO_LIST;
/*
* @enum VIDEO_SIZES | Enumeration values for the three video sizes supported by NetMeeting
*/
typedef enum
{
Small = 0, // @emem Small size video
Medium, // @emem Medium size video
Large // @emem Large size video
} VIDEO_SIZES;
/*
* VIDEO capabilities info structure
*
* @struct VIDCAP_INFO | VIDEO capabilities info structure.
* Use for both input and output when calling capabilties APIs.
* The fields are input-only, output-only or input/output depending on the API used.
* Behavior is undefined if these are altered.
*/
// VIDCAP_INFO structure
typedef struct BasicVidCapInfo
{
// format identification
DWORD dwFormatTag; // @field The format tag of this format
VIDEO_FORMAT_ID Id; // @field (OUTPUT only) The local id (a.k.a. *Handle*) of this capability entry
char szFormat[ACMFORMATDETAILS_FORMAT_CHARS]; // @field (OUTPUT only) Descriptive string of,
// the formate.g. "Microsoft H.263"
// NetMeeting specific info
WORD wCPUUtilizationEncode; // @field % of Pentium 90Mhz needed for compress
WORD wCPUUtilizationDecode; // @field % of Pentium 90Mhz needed for decompress
BOOL bSendEnabled; // @field OK to use this format for sending
BOOL bRecvEnabled; // @field OK to use this format for receiving
WORD wSortIndex; // @field (OUTPUT only) The ordered position of this entry
// in the capability table.
// video format details
VIDEO_SIZES enumVideoSize; // @field The video size for this format. Different video sizes for
// the same formats must be added as separate formats
BITMAPINFOHEADER bih; // @field The BITMAPINFOHEADER sturcture for the video
// size in enumVideosize
UINT uFrameRate; // @field Number of frames per second
DWORD dwBitsPerSample; // @field number of bits per sample for this format. Must
// match the value in bih.biBitCount
UINT uAvgBitrate; // @field The average bitrate for this codec
UINT uMaxBitrate; // (OUTPUT only) Worst case bitrate
}BASIC_VIDCAP_INFO, *PBASIC_VIDCAP_INFO, VIDCAP_INFO, *PVIDCAP_INFO;
/*
* @struct VIDCAP_INFO_LIST | List of VIDCAP_INFO structures
*/
typedef struct _vidcapinfolist
{
ULONG cFormats;// @field Number of VIDCAP_INFO structures in this list
VIDCAP_INFO aFormats[VARIABLE_DIM]; // @field cFormats VIDCAP_INFO structures
} VIDCAP_INFO_LIST, *PVIDCAP_INFO_LIST;
#include <poppack.h> /* End byte packing */
#endif //#ifndef _APPAVCAP_H
@@ -0,0 +1,173 @@
/*****************************************************************************/
/* */
/* Header: appccfg.h */
/* */
/* (C) COPYRIGHT Data Connection Ltd 1993 */
/* (C) COPYRIGHT Microsoft Corp. 1993 */
/* */
/* Header for appccfg.c */
/* */
/*****************************************************************************/
/* ---- 14/05/93 CD Initial coding */
/*****************************************************************************/
/*****************************************************************************/
/* */
/* HANDLE WINAPI GetAppcConfig( HANDLE hWnd, LPSTR pLocalLu, LPSTR pMode, */
/* LPINT pNumRemLu, INT iMaxRemLu, LPSTR pRemLu,*/
/* LPINT pAsyncRetCode) */
/* */
/* Parameters */
/* ---------- */
/* */
/* IN hWnd Handle of window to which completion is to be posted. */
/* If NULL no completion message will be posted but */
/* pAsyncRetCode must be valid. If hWnd is non-NULL it */
/* must be valid & pAsyncRetCode must be NULL. */
/* */
/* IN pLocalLU Pointer to max 8 byte ASCII local LU name (should be 8 */
/* ASCII blanks to request info on Remote LUs partnered */
/* to the default Local LU for this user. If none is */
/* configured then APPC_CFG_ERROR_NO_DEFAULT_LOCAL will */
/* be returned in the LPARAM). */
/* */
/* IN pMode Pointer to max 8 byte ASCII mode name (usually */
/* "QPCSUPP" for a 5250 emulator) */
/* */
/* IN/OUT pNumRemLu Pointer to int to receive the number of Remote LUs */
/* available. (If more than MaxRemLu then only the first */
/* MaxRemLu of them will have been copied) */
/* */
/* IN iMaxRemLu Int giving the max number of Remote LU names the */
/* buffer can hold. (size of buffer in bytes / 9) */
/* */
/* IN/OUT pRemLu Pointer to buffer to receive Remote LUs */
/* The data will be returned as an array of max 8 byte */
/* ASCII strings each followed by a terminating NULL */
/* */
/* IN/OUT pAsyncRetCode */
/* Optional pointer to int to take the RetCode on */
/* completion of the async part of the call. Only */
/* required if hWnd is NULL. If the request is not */
/* accepted the value in AsyncRetCode is undefined. */
/* It the request was accepted then until the request is */
/* completed AsyncRetCode will contain the value */
/* APPC_CFG_PENDING. Final values are as in the LPARAM of */
/* the completion message. If hWnd != NULL, pAsyncRetCode */
/* must be NULL. */
/* */
/* */
/* Returns */
/* ------- */
/* */
/* On Call */
/* ------- */
/* HANDLE This VerbId will be returned in the WPARAM of any completion */
/* message. (VerbId & APPC_CFG_SUCCESS) evaluates to TRUE if the */
/* request was accepted. */
/* */
/* If the above expression evaluates to FALSE then VerbId will */
/* have one of the following values: */
/* */
/* APPC_CFG_ERROR_NO_APPC_INIT */
/* APPC_CFG_ERROR_INVALID_HWND */
/* APPC_CFG_ERROR_BAD_POINTER */
/* APPC_CFG_ERROR_UNCLEAR_COMPLETION_MODE */
/* APPC_CFG_ERROR_TOO_MANY_REQUESTS */
/* APPC_CFG_ERROR_GENERAL_FAILURE */
/* */
/* */
/* */
/* On Receipt of completion message */
/* -------------------------------- */
/* MSG Equal to return from RegisterWindowMessage with */
/* WIN_APPC_CFG_COMPLETION_MSG passed as message name. */
/* */
/* WPARAM VerbId returned on the initiating call. */
/* */
/* LPARAM Retcode which will be one of the following: */
/* */
/* APPC_CFG_SUCCESS_NO_DEFAULT_REMOTE */
/* APPC_CFG_SUCCESS_DEFAULT_REMOTE */
/* */
/* APPC_CFG_ERROR_NO_DEFAULT_LOCAL_LU */
/* APPC_CFG_ERROR_BAD_LOCAL_LU */
/* APPC_CFG_ERROR_GENERAL_FAILURE */
/* */
/* (Retcode & APPC_CFG_ERROR) evaluates to TRUE for an error retcode */
/* (Retcode & APPC_CFG_SUCCESS) evaluates to TRUE for a success retcode */
/* */
/* */
/* */
/* Comments */
/* -------- */
/* This call attempts to get all the remote systems (partner LUs) which can */
/* be accessed by the logged on user with the given local LU and mode name. */
/* The final retcode also indicates if there is a default remote system */
/* configured. */
/* */
/* Completion will either be signified by the posting of a completion */
/* message or by the change of *pAsyncRetCode to a value other than */
/* APPC_CFG_PENDING. The latter mechanism is intended for use by console */
/* apps with no windows or on non-Windows platforms. Completion can then */
/* be tested by code similar to the below: */
/* */
/* while (*pAsyncRetCode == APPC_CFG_PENDING) */
/* { */
/* sleep(250); */
/* } */
/* */
/* Note that one of hWnd & pAsyncRetCode must be NULL and the other valid. */
/* If this isn't the case APPC_CFG_ERROR_UNCLEAR_COMPLETION_MODE will be */
/* returned. */
/* */
/* All strings are null terminated and are NOT space padded */
/* */
/* If the buffer is too short, the reported number of remote LU's available */
/* MAY be GREATER than the actual number. (This will only be the case where */
/* a particular Local Lu is configured at multiple nodes, and has the */
/* remote on multiple nodes.) When the call is made again which a buffer */
/* large enough to take all the remote LU, the reported number will be */
/* correct. */
/* */
/* ALL MEMORY TO WHICH POINTERS ARE PASSED MUST REMAIN VALID TILL A */
/* COMPLETION MESSAGE IS RECEIVED */
/* */
/* WinAPPCStartup MUST be called first */
/* */
/*****************************************************************************/
/*****************************************************************************/
/* Entry point prototype */
/*****************************************************************************/
extern HANDLE WINAPI GetAppcConfig( HANDLE hWnd, LPSTR pLocalLu, LPSTR pMode,
LPINT pNumRemLu, INT iMaxRemLu, LPSTR pRemLu,
LPINT pAsyncRetCode);
/*****************************************************************************/
/* Completion Message Name */
/*****************************************************************************/
#define WIN_APPC_CFG_COMPLETION_MSG "WinAppcCfg"
/*****************************************************************************/
/* Test values */
/*****************************************************************************/
#define APPC_CFG_SUCCESS 0x1000
#define APPC_CFG_ERROR 0x2000
#define APPC_CFG_PENDING 0xFFFF
/*****************************************************************************/
/* Retcodes */
/*****************************************************************************/
#define APPC_CFG_SUCCESS_NO_DEFAULT_REMOTE (APPC_CFG_SUCCESS + 1)
#define APPC_CFG_SUCCESS_DEFAULT_REMOTE (APPC_CFG_SUCCESS + 2)
#define APPC_CFG_ERROR_NO_DEFAULT_LOCAL_LU (APPC_CFG_ERROR + 1)
#define APPC_CFG_ERROR_BAD_LOCAL_LU (APPC_CFG_ERROR + 2)
#define APPC_CFG_ERROR_GENERAL_FAILURE (APPC_CFG_ERROR + 3)
#define APPC_CFG_ERROR_INVALID_HWND (APPC_CFG_ERROR + 4)
#define APPC_CFG_ERROR_BAD_POINTER (APPC_CFG_ERROR + 5)
#define APPC_CFG_ERROR_TOO_MANY_REQUESTS (APPC_CFG_ERROR + 6)
#define APPC_CFG_ERROR_NO_APPC_INIT (APPC_CFG_ERROR + 7)
#define APPC_CFG_ERROR_UNCLEAR_COMPLETION_MODE (APPC_CFG_ERROR + 8)

@@ -0,0 +1,6 @@
/*****************************************************************************/
/* Now a stub file to allow back compatibility, real file is winappc.h */
/*****************************************************************************/
#include <winappc.h>

@@ -0,0 +1,827 @@
/*********************************************************************
* IBM Confidential (IBM Confidential-Restricted when combined with the
* Aggregated OCO Source Modules for this program)
*
* OCO Source Materials
*
* (C) Copyright IBM Corp. 1994
* (C) Copyright Microsoft Corporation 1995
* Unpublished Work - All Rights Reserved
* Licensed Material - Property of IBM
*
* US Government Users Restricted
* Rights - Use, duplication or disclosure
* restricted by GSA ADP Schedule Contract with IBM Corp.
*
**********************************************************************/
/*
* NOTE:
* The appropriate system value must be defined for your platform.
* The following system values are supported:
* CM_OS2
* CM_DOS
* CM_AIX
* CM_MVS
* CM_VM
* CM_OS400
* CM_WINNT *W32*
*
* This is necessary for the proper setting of
* AFTP_ENTRY and AFTP_PTR below.
*/
/*
* This file is organized as follows:
* - product specific preprocessor directives that must be before all
* other declarations
* - AFTP type definitions
* - AFTP constants definitions
* - AFTP function long to short name mapping
* - AFTP function prototypes
*/
/*****************************************************************************/
/* Change History */
/* W32 18/02/95 SOS Win32 port */
/*****************************************************************************/
#ifndef _aftp_h
#define _aftp_h
#if defined (CM_WINNT) /*W32*/
/*W32*/
#define WINSNA /*W32*/
#define AFTP_ENTRY extern void WINAPI /*W32*/
#define AFTP_PTR * /*W32*/
/*W32*/
#elif defined( CM_DOS ) || defined( CM_OS2 ) /*W32*/
#if !defined(__32BIT__)
# define AFTP_ENTRY extern void pascal far _loadds
# define AFTP_PTR far *
#else
# define AFTP_ENTRY extern void _Far16 _Pascal
# define AFTP_PTR * _Seg16
#endif
#elif defined( CM_MVS ) || defined( CM_OS400 ) || \
defined( CM_VM ) || defined(CM_AIX)
# define AFTP_ENTRY extern void
# define AFTP_PTR *
#endif
/* Define pseudo-keywords IN and OUT if not defined yet */
#ifndef IN
#define IN
#endif
#ifndef OUT
#define OUT
#endif
/**********************************************************************
* AFTP Type Definitions
**********************************************************************/
typedef unsigned char AFTP_HANDLE_TYPE[8];
typedef unsigned long AFTP_ALLOCATION_SIZE_TYPE;
typedef unsigned long AFTP_BLOCK_SIZE_TYPE;
typedef unsigned long AFTP_BOOLEAN_TYPE;
#if defined (CM_WINNT) /*W32*/
typedef signed long AFTP_DATA_TYPE_TYPE; /*W32*/
#else /*W32*/
typedef unsigned long AFTP_DATA_TYPE_TYPE;
#endif /*W32*/
typedef unsigned long AFTP_DATE_MODE_TYPE;
typedef unsigned long AFTP_DETAIL_LEVEL_TYPE;
typedef unsigned long AFTP_FILE_MODE_TYPE;
typedef unsigned long AFTP_FILE_SIZE_TYPE;
typedef unsigned long AFTP_FILE_TIME_TYPE;
typedef unsigned long AFTP_FILE_TYPE_TYPE;
typedef unsigned long AFTP_INFO_LEVEL_TYPE;
typedef unsigned long AFTP_LENGTH_TYPE;
typedef unsigned long AFTP_RETURN_CODE_TYPE;
typedef unsigned long AFTP_RECORD_FORMAT_TYPE;
typedef unsigned long AFTP_RECORD_LENGTH_TYPE;
typedef unsigned long AFTP_SECURITY_TYPE;
typedef unsigned long AFTP_TRACE_LEVEL_TYPE;
typedef unsigned long AFTP_VERSION_TYPE;
typedef unsigned long AFTP_WRITE_MODE_TYPE;
/**********************************************************************
* AFTP Constant Definitions
**********************************************************************/
/* Supported Data Transfer Types */
#define AFTP_ASCII ((AFTP_DATA_TYPE_TYPE)0)
#define AFTP_BINARY ((AFTP_DATA_TYPE_TYPE)1)
#define AFTP_EBCDIC ((AFTP_DATA_TYPE_TYPE)2)
#define AFTP_DEFAULT_DATA_TYPE ((AFTP_DATA_TYPE_TYPE)3)
/* Supported File Date Modes */
#define AFTP_OLDDATE ((AFTP_DATE_MODE_TYPE)0)
#define AFTP_NEWDATE ((AFTP_DATE_MODE_TYPE)1)
/* Format Error Detail Levels */
#define AFTP_DETAIL_RC ((AFTP_DETAIL_LEVEL_TYPE)1)
#define AFTP_DETAIL_SECOND ((AFTP_DETAIL_LEVEL_TYPE)2)
#define AFTP_DETAIL_LOG ((AFTP_DETAIL_LEVEL_TYPE)4)
#define AFTP_DETAIL_INFO ((AFTP_DETAIL_LEVEL_TYPE)8)
#define AFTP_DETAIL_ALL ((AFTP_DETAIL_LEVEL_TYPE)15)
/* File Types, Requested and Returned */
#define AFTP_FILE ((AFTP_FILE_TYPE_TYPE)1)
#define AFTP_DIRECTORY ((AFTP_FILE_TYPE_TYPE)2)
#define AFTP_ALL_FILES ((AFTP_FILE_TYPE_TYPE) \
(AFTP_FILE | AFTP_DIRECTORY))
/* Info Level for aftp_dir_open() */
#define AFTP_NATIVE_FILENAMES ((AFTP_INFO_LEVEL_TYPE)0)
#define AFTP_NATIVE_ATTRIBUTES ((AFTP_INFO_LEVEL_TYPE)1)
/* Return Codes */
#define AFTP_RC_OK ((AFTP_RETURN_CODE_TYPE)0)
#define AFTP_RC_COMM_FAIL_NO_RETRY ((AFTP_RETURN_CODE_TYPE)1)
#define AFTP_RC_COMM_FAIL_RETRY ((AFTP_RETURN_CODE_TYPE)2)
#define AFTP_RC_COMM_CONFIG_LOCAL ((AFTP_RETURN_CODE_TYPE)3)
#define AFTP_RC_COMM_CONFIG_REMOTE ((AFTP_RETURN_CODE_TYPE)4)
#define AFTP_RC_SECURITY_NOT_VALID ((AFTP_RETURN_CODE_TYPE)5)
#define AFTP_RC_FAIL_INPUT_ERROR ((AFTP_RETURN_CODE_TYPE)6)
#define AFTP_RC_FAIL_RETRY ((AFTP_RETURN_CODE_TYPE)7)
#define AFTP_RC_FAIL_NO_RETRY ((AFTP_RETURN_CODE_TYPE)8)
#define AFTP_RC_FAIL_FATAL ((AFTP_RETURN_CODE_TYPE)9)
#define AFTP_RC_PROGRAM_INTERNAL_ERROR ((AFTP_RETURN_CODE_TYPE)10)
#define AFTP_RC_PARAMETER_CHECK ((AFTP_RETURN_CODE_TYPE)11)
#define AFTP_RC_HANDLE_NOT_VALID ((AFTP_RETURN_CODE_TYPE)12)
#define AFTP_RC_STATE_CHECK ((AFTP_RETURN_CODE_TYPE)13)
#define AFTP_RC_BUFFER_TOO_SMALL ((AFTP_RETURN_CODE_TYPE)14)
/* Supported Record Formats */
#define AFTP_DEFAULT_RECORD_FORMAT ((AFTP_RECORD_FORMAT_TYPE)0)
#define AFTP_V ((AFTP_RECORD_FORMAT_TYPE)1)
#define AFTP_VA ((AFTP_RECORD_FORMAT_TYPE)2)
#define AFTP_VB ((AFTP_RECORD_FORMAT_TYPE)3)
#define AFTP_VM ((AFTP_RECORD_FORMAT_TYPE)4)
#define AFTP_VS ((AFTP_RECORD_FORMAT_TYPE)5)
#define AFTP_VBA ((AFTP_RECORD_FORMAT_TYPE)6)
#define AFTP_VBM ((AFTP_RECORD_FORMAT_TYPE)7)
#define AFTP_VBS ((AFTP_RECORD_FORMAT_TYPE)8)
#define AFTP_VSA ((AFTP_RECORD_FORMAT_TYPE)9)
#define AFTP_VSM ((AFTP_RECORD_FORMAT_TYPE)10)
#define AFTP_VBSA ((AFTP_RECORD_FORMAT_TYPE)11)
#define AFTP_VBSM ((AFTP_RECORD_FORMAT_TYPE)12)
#define AFTP_F ((AFTP_RECORD_FORMAT_TYPE)13)
#define AFTP_FA ((AFTP_RECORD_FORMAT_TYPE)14)
#define AFTP_FB ((AFTP_RECORD_FORMAT_TYPE)15)
#define AFTP_FM ((AFTP_RECORD_FORMAT_TYPE)16)
#define AFTP_FBA ((AFTP_RECORD_FORMAT_TYPE)17)
#define AFTP_FBM ((AFTP_RECORD_FORMAT_TYPE)18)
#define AFTP_FBS ((AFTP_RECORD_FORMAT_TYPE)19)
#define AFTP_FBSM ((AFTP_RECORD_FORMAT_TYPE)20)
#define AFTP_FBSA ((AFTP_RECORD_FORMAT_TYPE)21)
#define AFTP_U ((AFTP_RECORD_FORMAT_TYPE)22)
#define AFTP_UA ((AFTP_RECORD_FORMAT_TYPE)23)
#define AFTP_UM ((AFTP_RECORD_FORMAT_TYPE)24)
/* Conversation Security Type Values */
#define AFTP_SECURITY_NONE ((AFTP_SECURITY_TYPE)0)
#define AFTP_SECURITY_SAME ((AFTP_SECURITY_TYPE)1)
#define AFTP_SECURITY_PROGRAM ((AFTP_SECURITY_TYPE)2)
/* Trace Levels */
#define AFTP_LVL_NO_TRACING ((AFTP_TRACE_LEVEL_TYPE) (0))
#define AFTP_LVL_FAILURES ((AFTP_TRACE_LEVEL_TYPE) (10))
#define AFTP_LVL_API ((AFTP_TRACE_LEVEL_TYPE) (20))
#define AFTP_LVL_MODULE ((AFTP_TRACE_LEVEL_TYPE) (30))
#define AFTP_LVL_FUNCTION ((AFTP_TRACE_LEVEL_TYPE) (40))
#define AFTP_LVL_IO_OPEN_CLOSE ((AFTP_TRACE_LEVEL_TYPE) (50))
#define AFTP_LVL_LINE_FLOW ((AFTP_TRACE_LEVEL_TYPE) (100))
#define AFTP_LVL_IO_READ_WRITE ((AFTP_TRACE_LEVEL_TYPE) (110))
#define AFTP_LVL_STATUS_DUMP ((AFTP_TRACE_LEVEL_TYPE) (120))
#define AFTP_LVL_VARIABLE ((AFTP_TRACE_LEVEL_TYPE) (130))
#define AFTP_LVL_LOCATION ((AFTP_TRACE_LEVEL_TYPE) (140))
#define AFTP_LVL_DATA_TRACE ((AFTP_TRACE_LEVEL_TYPE) (170))
#define AFTP_LVL_LOOPLOC ((AFTP_TRACE_LEVEL_TYPE) (200))
#define AFTP_MAX_TRACE_LVL AFTP_LVL_LOOPLOC
/* Supported File Write Modes */
#define AFTP_REPLACE ((AFTP_WRITE_MODE_TYPE)0)
#define AFTP_APPEND ((AFTP_WRITE_MODE_TYPE)1)
#define AFTP_NOREPLACE ((AFTP_WRITE_MODE_TYPE)2)
#define AFTP_STOREUNIQUE ((AFTP_WRITE_MODE_TYPE)3)
/* AFTP buffer lengths */
#define AFTP_FILE_NAME_SIZE ((AFTP_LENGTH_TYPE)512)
#define AFTP_FQLU_NAME_SIZE ((AFTP_LENGTH_TYPE)64)
#define AFTP_MODE_NAME_SIZE ((AFTP_LENGTH_TYPE)8)
#define AFTP_PASSWORD_SIZE ((AFTP_LENGTH_TYPE)10)
#define AFTP_TP_NAME_SIZE ((AFTP_LENGTH_TYPE)64)
#define AFTP_USERID_SIZE ((AFTP_LENGTH_TYPE)10)
#define AFTP_MESSAGE_SIZE ((AFTP_LENGTH_TYPE)2048)
#define AFTP_DATA_TYPE_SIZE ((AFTP_LENGTH_TYPE)64)
#define AFTP_DATE_MODE_SIZE ((AFTP_LENGTH_TYPE)64)
#define AFTP_RECORD_FORMAT_SIZE ((AFTP_LENGTH_TYPE)64)
#define AFTP_WRITE_MODE_SIZE ((AFTP_LENGTH_TYPE)64)
#define AFTP_SYSTEM_INFO_SIZE ((AFTP_LENGTH_TYPE)512)
/**********************************************************************
* AFTP Long to Short Function Name Mapping
**********************************************************************/
#define aftp_change_dir FTCD
#define aftp_close FTCLOSE
#define aftp_connect FTCONN
#define aftp_create FTCREATE
#define aftp_create_dir FTCRTDIR
#define aftp_delete FTDEL
#define aftp_destroy FTDESTRY
#define aftp_dir_close FTDIRCLS
#define aftp_dir_open FTDIROPN
#define aftp_dir_read FTDIRRD
#define aftp_extract_allocation_size FTEAS
#define aftp_extract_block_size FTEBS
#define aftp_extract_date_mode FTEDM
#define aftp_extract_destination FTEDST
#define aftp_extract_data_type FTEDT
#define aftp_extract_mode_name FTEMN
#define aftp_extract_partner_LU_name FTEPLU
#define aftp_extract_password FTEPW
#define aftp_extract_record_format FTERF
#define aftp_extract_record_length FTERL
#define aftp_extract_security_type FTEST
#define aftp_extract_tp_name FTETPN
#define aftp_extract_trace_level FTETL
#define aftp_extract_userid FTEUI
#define aftp_extract_write_mode FTEWM
#define aftp_format_error FTFE
#define aftp_get_date_mode_string FTGDMS
#define aftp_get_data_type_string FTGDTS
#define aftp_get_record_format_string FTGRFS
#define aftp_get_write_mode_string FTGWMS
#define aftp_local_change_dir FTLCD
#define aftp_local_dir_close FTLDC
#define aftp_local_dir_open FTLDO
#define aftp_local_dir_read FTLDR
#define aftp_load_ini_file FTLIF
#define aftp_local_query_current_dir FTLQCD
#define aftp_query_bytes_transferred FTQBT
#define aftp_query_current_dir FTQCD
#define aftp_query_local_system_info FTQLSI
#define aftp_query_local_version FTQLV
#define aftp_query_system_info FTQSYS
#define aftp_remove_dir FTRD
#define aftp_receive_file FTRECV
#define aftp_rename FTREN
#define aftp_set_allocation_size FTSAS
#define aftp_set_block_size FTSBS
#define aftp_set_destination FTSDEST
#define aftp_set_date_mode FTSDM
#define aftp_set_data_type FTSDT
#define aftp_send_file FTSEND
#define aftp_set_mode_name FTSMN
#define aftp_set_password FTSP
#define aftp_set_record_format FTSRF
#define aftp_set_record_length FTSRL
#define aftp_set_security_type FTSST
#define aftp_set_trace_filename FTSTF
#define aftp_set_trace_level FTSTL
#define aftp_set_tp_name FTSTP
#define aftp_set_userid FTSU
#define aftp_set_write_mode FTSWM
#define ftcd FTCD
#define ftclose FTCLOSE
#define ftconn FTCONN
#define ftcreate FTCREATE
#define ftcrtdir FTCRTDIR
#define ftdel FTDEL
#define ftdestry FTDESTRY
#define ftdircls FTDIRCLS
#define ftdiropn FTDIROPN
#define ftdirrd FTDIRRD
#define fteas FTEAS
#define ftebs FTEBS
#define ftedm FTEDM
#define ftedst FTEDST
#define ftedt FTEDT
#define ftemn FTEMN
#define fteplu FTEPLU
#define ftepw FTEPW
#define fterf FTERF
#define fterl FTERL
#define ftest FTEST
#define ftetpn FTETPN
#define fteui FTEUI
#define ftewm FTEWM
#define ftfe FTFE
#define ftgdms FTGDMS
#define ftgdts FTGDTS
#define ftgrfs FTGRFS
#define ftgwms FTGWMS
#define ftlcd FTLCD
#define ftldc FTLDC
#define ftldo FTLDO
#define ftldr FTLDR
#define ftlif FTLIF
#define ftlqcd FTLQCD
#define ftqbt FTQBT
#define ftqcd FTQCD
#define ftqlsi FTQLSI
#define ftqlv FTQLV
#define ftqsys FTQSYS
#define ftrd FTRD
#define ftrecv FTRECV
#define ftren FTREN
#define ftsas FTSAS
#define ftsbs FTSBS
#define ftsdest FTSDEST
#define ftsdm FTSDM
#define ftsdt FTSDT
#define ftsend FTSEND
#define ftstl FTSTL
#define ftstf FTSTF
#define ftetl FTETL
#define ftsmn FTSMN
#define ftsp FTSP
#define ftsrf FTSRF
#define ftsrl FTSRL
#define ftsst FTSST
#define ftstp FTSTP
#define ftsu FTSU
#define ftswm FTSWM
/**********************************************************************
* AFTP Function Prototypes
**********************************************************************/
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
AFTP_ENTRY
aftp_change_dir(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR directory,
IN AFTP_LENGTH_TYPE length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_close(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_connect(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_create(
OUT unsigned char AFTP_PTR connection_id,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_create_dir(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR directory,
IN AFTP_LENGTH_TYPE length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_delete(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR filename,
IN AFTP_LENGTH_TYPE length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_destroy(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_dir_close(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_dir_open(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR filespec,
IN AFTP_LENGTH_TYPE length,
IN AFTP_FILE_TYPE_TYPE file_type,
IN AFTP_INFO_LEVEL_TYPE info_level,
OUT unsigned char AFTP_PTR path,
IN AFTP_LENGTH_TYPE path_buffer_length,
OUT AFTP_LENGTH_TYPE AFTP_PTR path_returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_dir_read(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR dir_entry,
IN AFTP_LENGTH_TYPE dir_entry_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_BOOLEAN_TYPE AFTP_PTR no_more_entries,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_allocation_size(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_ALLOCATION_SIZE_TYPE AFTP_PTR allocation_size,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_block_size(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_BLOCK_SIZE_TYPE AFTP_PTR block_size,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_data_type(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_DATA_TYPE_TYPE AFTP_PTR data_type,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_date_mode(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_DATE_MODE_TYPE AFTP_PTR date_mode,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_destination(
IN unsigned char AFTP_PTR connection_id,
OUT unsigned char AFTP_PTR destination,
IN AFTP_LENGTH_TYPE destination_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_mode_name(
IN unsigned char AFTP_PTR connection_id,
OUT unsigned char AFTP_PTR mode_name,
IN AFTP_LENGTH_TYPE mode_name_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_partner_LU_name(
IN unsigned char AFTP_PTR connection_id,
OUT unsigned char AFTP_PTR partner_LU_name,
IN AFTP_LENGTH_TYPE partner_LU_name_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_password(
IN unsigned char AFTP_PTR connection_id,
OUT unsigned char AFTP_PTR password,
IN AFTP_LENGTH_TYPE password_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_record_format(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_RECORD_FORMAT_TYPE AFTP_PTR record_format,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_record_length(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_RECORD_LENGTH_TYPE AFTP_PTR record_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_security_type(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_SECURITY_TYPE AFTP_PTR security_type,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_tp_name(
IN unsigned char AFTP_PTR connection_id,
OUT unsigned char AFTP_PTR tp_name,
IN AFTP_LENGTH_TYPE tp_name_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_trace_level(
OUT AFTP_TRACE_LEVEL_TYPE AFTP_PTR trace_level,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_userid(
IN unsigned char AFTP_PTR connection_id,
OUT unsigned char AFTP_PTR userid,
IN AFTP_LENGTH_TYPE userid_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_extract_write_mode(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_WRITE_MODE_TYPE AFTP_PTR write_mode,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_format_error(
IN unsigned char AFTP_PTR connection_id,
IN AFTP_DETAIL_LEVEL_TYPE detail_level,
OUT unsigned char AFTP_PTR error_str,
IN AFTP_LENGTH_TYPE error_str_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_get_data_type_string(
IN AFTP_DATA_TYPE_TYPE data_type,
OUT unsigned char AFTP_PTR data_type_string,
IN AFTP_LENGTH_TYPE data_type_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_get_date_mode_string(
IN AFTP_DATE_MODE_TYPE date_mode,
OUT unsigned char AFTP_PTR date_mode_string,
IN AFTP_LENGTH_TYPE date_mode_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_get_record_format_string(
IN AFTP_RECORD_FORMAT_TYPE record_format,
OUT unsigned char AFTP_PTR record_format_string,
IN AFTP_LENGTH_TYPE record_format_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_get_write_mode_string(
IN AFTP_WRITE_MODE_TYPE write_mode,
OUT unsigned char AFTP_PTR write_mode_string,
IN AFTP_LENGTH_TYPE write_mode_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_load_ini_file(
IN unsigned char AFTP_PTR filename,
IN AFTP_LENGTH_TYPE filename_size,
IN unsigned char AFTP_PTR program_path,
IN AFTP_LENGTH_TYPE path_size,
OUT unsigned char AFTP_PTR error_string,
IN AFTP_LENGTH_TYPE error_string_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_local_change_dir(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR directory,
IN AFTP_LENGTH_TYPE length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_local_dir_close(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_local_dir_open(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR filespec,
IN AFTP_LENGTH_TYPE length,
IN AFTP_FILE_TYPE_TYPE file_type,
IN AFTP_INFO_LEVEL_TYPE info_level,
OUT unsigned char AFTP_PTR path,
IN AFTP_LENGTH_TYPE path_buffer_length,
OUT AFTP_LENGTH_TYPE AFTP_PTR path_returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_local_dir_read(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR dir_entry,
IN AFTP_LENGTH_TYPE dir_entry_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_BOOLEAN_TYPE AFTP_PTR no_more_entries,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_local_query_current_dir(
IN unsigned char AFTP_PTR connection_id,
OUT unsigned char AFTP_PTR directory,
IN AFTP_LENGTH_TYPE directory_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_query_bytes_transferred(
IN unsigned char AFTP_PTR connection_id,
OUT AFTP_LENGTH_TYPE AFTP_PTR bytes_transferred,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_query_current_dir(
IN unsigned char AFTP_PTR connection_id,
OUT unsigned char AFTP_PTR directory,
IN AFTP_LENGTH_TYPE directory_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_query_local_version(
OUT AFTP_VERSION_TYPE AFTP_PTR major_version,
OUT AFTP_VERSION_TYPE AFTP_PTR minor_version,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_query_local_system_info(
IN unsigned char AFTP_PTR connection_id,
OUT unsigned char AFTP_PTR system_info,
IN AFTP_LENGTH_TYPE system_info_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_query_system_info(
IN unsigned char AFTP_PTR connection_id,
OUT unsigned char AFTP_PTR system_info,
IN AFTP_LENGTH_TYPE system_info_size,
OUT AFTP_LENGTH_TYPE AFTP_PTR returned_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_receive_file(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR local_file,
IN AFTP_LENGTH_TYPE local_file_length,
IN unsigned char AFTP_PTR remote_file,
IN AFTP_LENGTH_TYPE remote_file_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_remove_dir(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR directory,
IN AFTP_LENGTH_TYPE length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_rename(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR oldfile,
IN AFTP_LENGTH_TYPE oldlength,
IN unsigned char AFTP_PTR newfile,
IN AFTP_LENGTH_TYPE newlength,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_send_file(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR local_file,
IN AFTP_LENGTH_TYPE local_file_length,
IN unsigned char AFTP_PTR remote_file,
IN AFTP_LENGTH_TYPE remote_file_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_allocation_size(
IN unsigned char AFTP_PTR connection_id,
IN AFTP_ALLOCATION_SIZE_TYPE allocation_size,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_block_size(
IN unsigned char AFTP_PTR connection_id,
IN AFTP_BLOCK_SIZE_TYPE block_size,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_data_type(
IN unsigned char AFTP_PTR connection_id,
IN AFTP_DATA_TYPE_TYPE data_type,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_date_mode(
IN unsigned char AFTP_PTR connection_id,
IN AFTP_DATE_MODE_TYPE date_mode,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_destination(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR destination,
IN AFTP_LENGTH_TYPE length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_mode_name(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR mode_name,
IN AFTP_LENGTH_TYPE length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_password(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR password,
IN AFTP_LENGTH_TYPE length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_record_format(
IN unsigned char AFTP_PTR connection_id,
IN AFTP_RECORD_FORMAT_TYPE record_format,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_record_length(
IN unsigned char AFTP_PTR connection_id,
IN AFTP_RECORD_LENGTH_TYPE record_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_security_type(
IN unsigned char AFTP_PTR connection_id,
IN AFTP_SECURITY_TYPE security_type,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_tp_name(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR tp_name,
IN AFTP_LENGTH_TYPE length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_trace_filename(
IN unsigned char AFTP_PTR filename,
IN AFTP_LENGTH_TYPE filename_length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_trace_level(
IN AFTP_TRACE_LEVEL_TYPE trace_level,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_userid(
IN unsigned char AFTP_PTR connection_id,
IN unsigned char AFTP_PTR userid,
IN AFTP_LENGTH_TYPE length,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
AFTP_ENTRY
aftp_set_write_mode(
IN unsigned char AFTP_PTR connection_id,
IN AFTP_WRITE_MODE_TYPE write_mode,
OUT AFTP_RETURN_CODE_TYPE AFTP_PTR rc);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,68 @@
/***
*assert.h - define the assert macro
*
* Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
* Defines the assert(exp) macro.
* [ANSI/System V]
*
* [Public]
*
****/
#if !defined(_WIN32) && !defined(_MAC)
#error ERROR: Only Mac or Win32 targets supported!
#endif
/* Define _CRTIMP */
#ifndef _CRTIMP
#ifdef _DLL
#define _CRTIMP __declspec(dllimport)
#else /* ndef _DLL */
#define _CRTIMP
#endif /* _DLL */
#endif /* _CRTIMP */
/* Define __cdecl for non-Microsoft compilers */
#if ( !defined(_MSC_VER) && !defined(__cdecl) )
#define __cdecl
#endif
/* Define _CRTAPI1 (for compatibility with the NT SDK) */
#ifndef _CRTAPI1
#if _MSC_VER >= 800 && _M_IX86 >= 300
#define _CRTAPI1 __cdecl
#else
#define _CRTAPI1
#endif
#endif
#undef assert
#ifdef NDEBUG
#define assert(exp) ((void)0)
#else
#ifdef __cplusplus
extern "C" {
#endif
_CRTIMP void __cdecl _assert(void *, void *, unsigned);
#ifdef __cplusplus
}
#endif
#define assert(exp) (void)( (exp) || (_assert(#exp, __FILE__, __LINE__), 0) )
#endif /* NDEBUG */
@@ -0,0 +1,197 @@
/*++
Copyright 1992 - 1998 Microsoft Corporation
Module Name:
wshatalk.h
Abstract:
This is the header file for application using Windows Sockets for
Appletalk.
Revision History:
10 Jul 1992 Initial Version
--*/
#ifndef _ATALKWSH_
#define _ATALKWSH_
//
// All protocol types should be specified in the Decimal base
//
#define DECIMAL_BASE 10
//
// Protocol number 0 is invalid in the Appletalk case
//
#define ATPROTO_BASE (1000 * AF_APPLETALK)
#define SOL_APPLETALK (ATPROTO_BASE)
#define DDPPROTO_RTMP (ATPROTO_BASE + 1)
#define DDPPROTO_NBP (ATPROTO_BASE + 2)
#define DDPPROTO_ATP (ATPROTO_BASE + 3)
#define DDPPROTO_AEP (ATPROTO_BASE + 4)
#define DDPPROTO_RTMPRQ (ATPROTO_BASE + 5)
#define DDPPROTO_ZIP (ATPROTO_BASE + 6)
#define DDPPROTO_ADSP (ATPROTO_BASE + 7)
#define DDPPROTO_MAX (ATPROTO_BASE + 255)
//
// Define the higher layer appletalk protocol types
//
#define ATPROTO_ADSP (DDPPROTO_MAX + 1)
#define ATPROTO_ATP (DDPPROTO_MAX + 2)
#define ATPROTO_ASP (DDPPROTO_MAX + 3)
#define ATPROTO_PAP (DDPPROTO_MAX + 4)
#define SO_REGISTER_NAME 0xA000
#define SO_DEREGISTER_NAME 0xA001
#define SO_REMOVE_NAME SO_DEREGISTER_NAME
#define SO_LOOKUP_NAME 0xA002
#define SO_CONFIRM_NAME 0xA003
#define SO_LOOKUP_MYZONE 0xA004
#define SO_GETMYZONE SO_LOOKUP_MYZONE
#define SO_LOOKUP_ZONES 0xA005
#define SO_GETZONELIST SO_LOOKUP_ZONES
#define SO_LOOKUP_ZONES_ON_ADAPTER 0xA006
#define SO_GETLOCALZONES SO_LOOKUP_ZONES_ON_ADAPTER
#define SO_LOOKUP_NETDEF_ON_ADAPTER 0xA007
#define SO_GETNETINFO SO_LOOKUP_NETDEF_ON_ADAPTER
//
// PAP-specific options
//
#define SO_PAP_SET_SERVER_STATUS 0xA007
#define SO_PAP_GET_SERVER_STATUS 0xA008
#define SO_PAP_PRIME_READ 0xA009
#define ATADDR_ANY 0 // Dynamic socket (=0)
#define ATADDR_BROADCAST 0xFF // Broadcast node id (=ff)
//
// Define flags/error codes peculiar to Appletalk
//
#define WSAEMSGPARTIAL (WSABASEERR+100)
// Maximum pap status size
#define MAX_PAP_STATUS_SIZE 255
#define MIN_PAP_READ_BUF_SIZE 4096
// These are the unused 4 bytes returned in the PAP status packet. If ever
// they are to be interpreted, they will be available.
#define PAP_UNUSED_STATUS_BYTES 4
//
// SOCKADDR_AT structure
//
typedef struct sockaddr_at
{
USHORT sat_family;
USHORT sat_net;
UCHAR sat_node;
UCHAR sat_socket;
} SOCKADDR_AT, *PSOCKADDR_AT;
//
// ***WARNING***
// This is defined to be the same as the ATALK ADDRESS defined in atalktdi.h
// Change this if the other changes.
//
typedef union
{
struct
{
USHORT Network;
UCHAR Node;
UCHAR Socket;
};
ULONG Address;
} WSH_ATALK_ADDRESS, *PWSH_ATALK_ADDRESS;
//
// Typedefs for the various options
//
//
// ***WARNING***:
// This should be exactly the same as NBP_NAME defined in atalktdi.h
//
#define MAX_ENTITY 32
typedef struct
{
CHAR ObjectNameLen;
CHAR ObjectName[MAX_ENTITY];
CHAR TypeNameLen;
CHAR TypeName[MAX_ENTITY];
CHAR ZoneNameLen;
CHAR ZoneName[MAX_ENTITY];
} WSH_NBP_NAME, *PWSH_NBP_NAME;
typedef struct
{
WSH_ATALK_ADDRESS Address;
USHORT Enumerator;
WSH_NBP_NAME NbpName;
} WSH_NBP_TUPLE, *PWSH_NBP_TUPLE;
typedef WSH_NBP_NAME WSH_REGISTER_NAME, *PWSH_REGISTER_NAME;
typedef WSH_NBP_NAME WSH_DEREGISTER_NAME, *PWSH_DEREGISTER_NAME;
typedef WSH_NBP_NAME WSH_REMOVE_NAME, *PWSH_REMOVE_NAME;
typedef struct _WSH_LOOKUP_ZONES
{
ULONG NoZones;
//
// CHAR Zones[] - null separated zones
//
} WSH_LOOKUP_ZONES, *PWSH_LOOKUP_ZONES;
typedef struct _WSH_LOOKUP_NETDEF_ON_ADAPTER
{
USHORT NetworkRangeLowerEnd;
USHORT NetworkRangeUpperEnd;
// This will be followed by a null terminated ansi default zone.
// PUCHAR DefaultZone[]
} WSH_LOOKUP_NETDEF_ON_ADAPTER , *PWSH_LOOKUP_NETDEF_ON_ADAPTER;
typedef struct _WSH_LOOKUP_NAME
{
WSH_NBP_TUPLE LookupTuple;
ULONG NoTuples;
//
// Array of NoTuple WSH_NBP_TUPLEs
//
} WSH_LOOKUP_NAME, *PWSH_LOOKUP_NAME;
typedef struct _WSH_PAP_GET_SERVER_STATUS
{
SOCKADDR_AT ServerAddr;
UCHAR Reserved[PAP_UNUSED_STATUS_BYTES];
UCHAR ServerStatus[MAX_PAP_STATUS_SIZE+1];
} WSH_PAP_GET_SERVER_STATUS, *PWSH_PAP_GET_SERVER_STATUS;
#endif // _ATALKWSH_
@@ -0,0 +1,440 @@
// --attrname.h-----------------------------------------------------------------
//
// Names of directory attributes.
//
// Copyright 1986 - 1998 Microsoft Corporation. All Rights Reserved.
// -----------------------------------------------------------------------------
#ifndef _ATTRNAME_H
#define _ATTRNAME_H
#define PS_EXCHANGE_DIRECTORY \
"\x08\x2A\x86\x48\x86\xF7\x14\x01\x02\x00\x00\x00\x00\x00\x00\x00"
#define NM_ACCESS_CATEGORY 0x0001000CU
#define NM_ACTIVATION_SCHEDULE 0x00025581U
#define NM_ACTIVATION_STYLE 0x00010049U
#define NM_ADDRESS 0x00020082U
#define NM_ADDRESS_ENTRY_DISPLAY_TABLE 0x00024482U
#define NM_ADDRESS_ENTRY_DISPLAY_TABLE_MSDOS 0x00021083U
#define NM_ADDRESS_SYNTAX 0x00027F81U
#define NM_ADDRESS_TYPE 0x00025E82U
#define NM_ADMD 0x00026881U
#define NM_ADMIN_DESCRIPTION 0x00026281U
#define NM_ADMIN_DISPLAY_NAME 0x00024281U
#define NM_ADMIN_EXTENSION_DLL 0x0001005FU
#define NM_ALT_RECIPIENT 0x0001007EU
#define NM_ALT_RECIPIENT_BL 0x00022682U
#define NM_ANCESTOR_ID 0x00020582U
#define NM_ASSISTANT_NAME 0x00023C83U
#define NM_ASSOC_NT_ACCOUNT 0x00025481U
#define NM_ASSOC_REMOTE_DXA 0x00022B82U
#define NM_ASSOCIATION_LIFETIME 0x00021581U
#define NM_ATTRIBUTE_ID 0x0001001EU
#define NM_ATTRIBUTE_SYNTAX 0x00010020U
#define NM_AUTH_ORIG 0x00020181U
#define NM_AUTH_ORIG_BL 0x00022282U
#define NM_AUTHORIZED_DOMAIN 0x00024A81U
#define NM_AUTHORIZED_PASSWORD 0x00024181U
#define NM_AUTHORIZED_USER 0x00021482U
#define NM_AUTOREPLY 0x00021E82U
#define NM_AUTOREPLY_MESSAGE 0x00021F82U
#define NM_AUTOREPLY_SUBJECT 0x00023A83U
#define NM_AUXILIARY_CLASS 0x00025F82U
#define NM_BRIDGEHEAD_SERVERS 0x00024F83U
#define NM_BUSINESS_ROLES 0x00010069U
#define NM_CAN_CREATE_PF 0x0001000BU
#define NM_CAN_CREATE_PF_BL 0x00025382U
#define NM_CAN_CREATE_PF_DL 0x0001003EU
#define NM_CAN_CREATE_PF_DL_BL 0x00025482U
#define NM_CAN_NOT_CREATE_PF 0x0001003FU
#define NM_CAN_NOT_CREATE_PF_BL 0x00025582U
#define NM_CAN_NOT_CREATE_PF_DL 0x00022C82U
#define NM_CAN_NOT_CREATE_PF_DL_BL 0x00025682U
#define NM_CAN_PRESERVE_DNS 0x00024783U
#define NM_CLOCK_ALERT_OFFSET 0x00022581U
#define NM_CLOCK_ALERT_REPAIR 0x00022481U
#define NM_CLOCK_WARNING_OFFSET 0x00023181U
#define NM_CLOCK_WARNING_REPAIR 0x00022681U
#define NM_COMMENT 0x00010051U
#define NM_COMPANY 0x00021281U
#define NM_COMPUTER_NAME 0x00010014U
#define NM_CONNECTED_DOMAINS 0x00025381U
#define NM_CONTAINER_INFO 0x00022882U
#define NM_COST 0x00020781U
#define NM_DELIV_CONT_LENGTH 0x00020A81U
#define NM_DELIV_EITS 0x00020B81U
#define NM_DELIV_EXT_CONT_TYPES 0x00020C81U
#define NM_DELIVER_AND_REDIRECT 0x00023E81U
#define NM_DELIVERY_MECHANISM 0x00027181U
#define NM_DEPARTMENT 0x00020D81U
#define NM_DIAGNOSTIC_REG_KEY 0x00023D81U
#define NM_DISPLAY_NAME 0x0001000DU
#define NM_DISPLAY_NAME_OVERRIDE 0x00024082U
#define NM_DISPLAY_NAME_PRINTABLE 0x00026182U
#define NM_DL_MEM_REJECT_PERMS 0x0001002FU
#define NM_DL_MEM_REJECT_PERMS_BL 0x00022582U
#define NM_DL_MEM_SUBMIT_PERMS 0x00021081U
#define NM_DL_MEM_SUBMIT_PERMS_BL 0x00022382U
#define NM_DL_MEMBER_RULE 0x00024A82U
#define NM_DMD_LOCATION 0x00010024U
#define NM_DOMAIN_DEF_ALT_RECIP 0x00021181U
#define NM_DOMAIN_NAME 0x00021381U
#define NM_DSA_SIGNATURE 0x0001004AU
#define NM_DXA_ADMIN_COPY 0x00027A82U
#define NM_DXA_ADMIN_FORWARD 0x00027B82U
#define NM_DXA_ADMIN_UPDATE 0x00027D82U
#define NM_DXA_APPEND_REQCN 0x00022E81U
#define NM_DXA_CONF_CONTAINER_LIST 0x00023481U
#define NM_DXA_CONF_REQ_TIME 0x0001007AU
#define NM_DXA_CONF_SEQ 0x00023881U
#define NM_DXA_CONF_SEQ_USN 0x0001002DU
#define NM_DXA_EXCHANGE_OPTIONS 0x00026782U
#define NM_DXA_EXPORT_NOW 0x00027982U
#define NM_DXA_FLAGS 0x0001006AU
#define NM_DXA_IMP_SEQ 0x00010074U
#define NM_DXA_IMP_SEQ_TIME 0x00010075U
#define NM_DXA_IMP_SEQ_USN 0x00010056U
#define NM_DXA_IMPORT_NOW 0x00027882U
#define NM_DXA_IN_TEMPLATE_MAP 0x00026B82U
#define NM_DXA_LOCAL_ADMIN 0x00010071U
#define NM_DXA_LOGGING_LEVEL 0x00027E82U
#define NM_DXA_NATIVE_ADDRESS_TYPE 0x00024B82U
#define NM_DXA_OUT_TEMPLATE_MAP 0x00026C82U
#define NM_DXA_PASSWORD 0x00023182U
#define NM_DXA_PREV_EXCHANGE_OPTIONS 0x00025881U
#define NM_DXA_PREV_EXPORT_NATIVE_ONLY 0x00024B81U
#define NM_DXA_PREV_IN_EXCHANGE_SENSITIVITY 0x0001005AU
#define NM_DXA_PREV_REMOTE_ENTRIES 0x00020982U
#define NM_DXA_PREV_REPLICATION_SENSITIVITY 0x00025781U
#define NM_DXA_PREV_TEMPLATE_OPTIONS 0x00020B83U
#define NM_DXA_PREV_TYPES 0x00025981U
#define NM_DXA_RECIPIENT_CP 0x00020083U
#define NM_DXA_REMOTE_CLIENT 0x00010070U
#define NM_DXA_REQ_SEQ 0x00010065U
#define NM_DXA_REQ_SEQ_TIME 0x00010072U
#define NM_DXA_REQ_SEQ_USN 0x00023681U
#define NM_DXA_REQNAME 0x00023E83U
#define NM_DXA_SVR_SEQ 0x00026882U
#define NM_DXA_SVR_SEQ_TIME 0x00026982U
#define NM_DXA_SVR_SEQ_USN 0x0001007CU
#define NM_DXA_TASK 0x00010064U
#define NM_DXA_TEMPLATE_OPTIONS 0x00026682U
#define NM_DXA_TEMPLATE_TIMESTAMP 0x00026D82U
#define NM_DXA_TYPES 0x00010077U
#define NM_DXA_UNCONF_CONTAINER_LIST 0x00023581U
#define NM_ENABLED_PROTOCOLS 0x00025A83U
#define NM_ENCAPSULATION_METHOD 0x00024083U
#define NM_ENCRYPT 0x00026C81U
#define NM_ENCRYPT_ALG_LIST_NA 0x00020281U
#define NM_ENCRYPT_ALG_LIST_OTHER 0x00020F83U
#define NM_ENCRYPT_ALG_SELECTED_NA 0x00021183U
#define NM_ENCRYPT_ALG_SELECTED_OTHER 0x00020D83U
#define NM_EXPAND_DLS_LOCALLY 0x00024981U
#define NM_EXPIRATION_TIME 0x00020A83U
#define NM_EXPORT_CONTAINERS 0x0001006FU
#define NM_EXPORT_CUSTOM_RECIPIENTS 0x00023382U
#define NM_EXTENDED_CHARS_ALLOWED 0x00027C82U
#define NM_EXTENSION_ATTRIBUTE_1 0x00022783U
#define NM_EXTENSION_ATTRIBUTE_10 0x00023083U
#define NM_EXTENSION_ATTRIBUTE_2 0x00022883U
#define NM_EXTENSION_ATTRIBUTE_3 0x00022983U
#define NM_EXTENSION_ATTRIBUTE_4 0x00022A83U
#define NM_EXTENSION_ATTRIBUTE_5 0x00022B83U
#define NM_EXTENSION_ATTRIBUTE_6 0x00022C83U
#define NM_EXTENSION_ATTRIBUTE_7 0x00022D83U
#define NM_EXTENSION_ATTRIBUTE_8 0x00022E83U
#define NM_EXTENSION_ATTRIBUTE_9 0x00022F83U
#define NM_EXTENSION_DATA 0x00026481U
#define NM_EXTENSION_NAME 0x00026381U
#define NM_EXTENSION_NAME_INHERITED 0x00010061U
#define NM_FILE_VERSION 0x00023281U
#define NM_FILTER_LOCAL_ADDRESSES 0x0001002CU
#define NM_FOLDER_PATHNAME 0x00025182U
#define NM_FOLDERS_CONTAINER 0x00026B81U
#define NM_FOREIGN_DSAS 0x00010044U
#define NM_GARBAGE_COLL_PERIOD 0x00022D82U
#define NM_GATEWAY_LOCAL_CRED 0x00010025U
#define NM_GATEWAY_LOCAL_DESIG 0x0001001DU
#define NM_GATEWAY_PROXY 0x00022E82U
#define NM_GATEWAY_ROUTING_TREE 0x00022781U
#define NM_GIVEN_NAME 0x00010029U
#define NM_GOVERNS_ID 0x00010016U
#define NM_GWART_LAST_MODIFIED 0x00020482U
#define NM_HAS_FULL_REPLICA_NCS 0x0001000FU
#define NM_HAS_MASTER_NCS 0x0001000EU
#define NM_HELP_DATA16 0x00021283U
#define NM_HELP_DATA32 0x00010009U
#define NM_HELP_FILE_NAME 0x00024782U
#define NM_HEURISTICS 0x00024483U
#define NM_HIDE_DL_MEMBERSHIP 0x00022982U
#define NM_HIDE_FROM_ADDRESS_BOOK 0x00022981U
#define NM_HOME_MDB 0x00027481U
#define NM_HOME_MDB_BL 0x00020983U
#define NM_HOME_MTA 0x00022B81U
#define NM_HOME_PUBLIC_SERVER 0x00023983U
#define NM_IMPORT_CONTAINER 0x0001006EU
#define NM_IMPORT_SENSITIVITY 0x00027F82U
#define NM_IMPORTED_FROM 0x00020782U
#define NM_INBOUND_SITES 0x00010047U
#define NM_INITIALS 0x00020E83U
#define NM_INSTANCE_TYPE 0x00010001U
#define NM_INVOCATION_ID 0x00010073U
#define NM_IS_DELETED 0x00010030U
#define NM_IS_MEMBER_OF_DL 0x00010066U
#define NM_IS_SINGLE_VALUED 0x00010021U
#define NM_KCC_STATUS 0x00026D81U
#define NM_KM_SERVER 0x00023883U
#define NM_LANGUAGE 0x00025383U
#define NM_LDAP_DISPLAY_NAME 0x00024C83U
#define NM_LINE_WRAP 0x00024183U
#define NM_LINK_ID 0x00010032U
#define NM_LOCAL_BRIDGE_HEAD 0x00023782U
#define NM_LOCAL_BRIDGE_HEAD_ADDRESS 0x00026181U
#define NM_LOCAL_INITIAL_TURN 0x00010027U
#define NM_LOCAL_SCOPE 0x00010011U
#define NM_LOG_FILENAME 0x00024081U
#define NM_LOG_ROLLOVER_INTERVAL 0x00025C82U
#define NM_MAIL_NICKNAME 0x00023F83U
#define NM_MAINTAIN_AUTOREPLY_HISTORY 0x00025181U
#define NM_MANAGER 0x00024F82U
#define NM_MAPI_DISPLAY_TYPE 0x00010037U
#define NM_MAPI_ID 0x00010031U
#define NM_MAPI_RECIPIENT 0x00027382U
#define NM_MASTER_DSA 0x00010006U
#define NM_MAXIMUM_OBJECT_ID 0x00024A83U
#define NM_MAY_CONTAIN 0x00010019U
#define NM_MDB_BACKOFF_INTERVAL 0x00010048U
#define NM_MDB_MSG_TIME_OUT_PERIOD 0x00010040U
#define NM_MDB_OVER_QUOTA_LIMIT 0x00021082U
#define NM_MDB_STORAGE_QUOTA 0x00020A82U
#define NM_MDB_UNREAD_LIMIT 0x00010045U
#define NM_MDB_USE_DEFAULTS 0x00023582U
#define NM_MESSAGE_TRACKING_ENABLED 0x00024583U
#define NM_MONITOR_CLOCK 0x00022381U
#define NM_MONITOR_SERVERS 0x00021C81U
#define NM_MONITOR_SERVICES 0x00022081U
#define NM_MONITORED_CONFIGURATIONS 0x00024681U
#define NM_MONITORED_SERVERS 0x00023381U
#define NM_MONITORED_SERVICES 0x00024781U
#define NM_MONITORING_ALERT_DELAY 0x00021E81U
#define NM_MONITORING_ALERT_UNITS 0x00010039U
#define NM_MONITORING_AVAILABILITY_STYLE 0x00024283U
#define NM_MONITORING_AVAILABILITY_WINDOW 0x00024881U
#define NM_MONITORING_CACHED_VIA_MAIL 0x00024481U
#define NM_MONITORING_CACHED_VIA_RPC 0x00024581U
#define NM_MONITORING_ESCALATION_PROCEDURE 0x00023C81U
#define NM_MONITORING_HOTSITE_POLL_INTERVAL 0x00023A81U
#define NM_MONITORING_HOTSITE_POLL_UNITS 0x00010057U
#define NM_MONITORING_MAIL_UPDATE_INTERVAL 0x00024381U
#define NM_MONITORING_MAIL_UPDATE_UNITS 0x0001005DU
#define NM_MONITORING_NORMAL_POLL_INTERVAL 0x00023B81U
#define NM_MONITORING_NORMAL_POLL_UNITS 0x00010058U
#define NM_MONITORING_RECIPIENTS 0x00021F81U
#define NM_MONITORING_RECIPIENTS_NDR 0x00020383U
#define NM_MONITORING_RPC_UPDATE_INTERVAL 0x0001005CU
#define NM_MONITORING_RPC_UPDATE_UNITS 0x00010059U
#define NM_MONITORING_WARNING_DELAY 0x00021D81U
#define NM_MONITORING_WARNING_UNITS 0x00010038U
#define NM_MTA_LOCAL_CRED 0x00020E82U
#define NM_MTA_LOCAL_DESIG 0x00020F82U
#define NM_MUST_CONTAIN 0x00010018U
#define NM_N_ADDRESS 0x00021A82U
#define NM_N_ADDRESS_TYPE 0x00025E81U
#define NM_NETWORK_ADDRESS 0x00024B83U
#define NM_NNTP_CHARACTER_SET 0x00025883U
#define NM_NNTP_CONTENT_FORMAT 0x00025183U
#define NM_NT_MACHINE_NAME 0x00024683U
#define NM_NT_SECURITY_DESCRIPTOR 0x00021982U
#define NM_NUM_OF_OPEN_RETRIES 0x00021481U
#define NM_NUM_OF_TRANSFER_RETRIES 0x00020681U
#define NM_OBJ_DIST_NAME 0x00010033U
#define NM_OBJECT_CLASS_CATEGORY 0x00027282U
#define NM_OBJECT_VERSION 0x0001004CU
#define NM_OFF_LINE_AB_CONTAINERS 0x00020783U
#define NM_OFF_LINE_AB_SCHEDULE 0x00020583U
#define NM_OFF_LINE_AB_SERVER 0x00020883U
#define NM_OFF_LINE_AB_STYLE 0x00020683U
#define NM_OID_TYPE 0x00024282U
#define NM_OM_OBJECT_CLASS 0x00025A81U
#define NM_OM_SYNTAX 0x00026781U
#define NM_OOF_REPLY_TO_ORIGINATOR 0x00023683U
#define NM_OPEN_RETRY_INTERVAL 0x00020F81U
#define NM_ORIGINAL_DISPLAY_TABLE 0x00023D83U
#define NM_ORIGINAL_DISPLAY_TABLE_MSDOS 0x00025681U
#define NM_OUTBOUND_SITES 0x00010000U
#define NM_OWNER_BL 0x00010068U
#define NM_P_SELECTOR 0x00021D82U
#define NM_P_SELECTOR_INBOUND 0x00010034U
#define NM_PER_MSG_DIALOG_DISPLAY_TABLE 0x00024582U
#define NM_PER_RECIP_DIALOG_DISPLAY_TABLE 0x00024682U
#define NM_PERIOD_REP_SYNC_TIMES 0x00020C82U
#define NM_PERIOD_REPL_STAGGER 0x00020882U
#define NM_PF_CONTACTS 0x0001004BU
#define NM_POP_CHARACTER_SET 0x00025483U
#define NM_POP_CONTENT_FORMAT 0x00025283U
#define NM_POSS_SUPERIORS 0x00010008U
#define NM_PRMD 0x00026081U
#define NM_PROXY_ADDRESSES 0x00025281U
#define NM_PROXY_GENERATOR_DLL 0x00024882U
#define NM_PUBLIC_DELEGATES 0x00026E81U
#define NM_PUBLIC_DELEGATES_BL 0x00022782U
#define NM_QUOTA_NOTIFICATION_SCHEDULE 0x00010062U
#define NM_QUOTA_NOTIFICATION_STYLE 0x00020483U
#define NM_RANGE_LOWER 0x00010022U
#define NM_RANGE_UPPER 0x00010023U
#define NM_RAS_CALLBACK_NUMBER 0x00023B82U
#define NM_RAS_PHONE_NUMBER 0x00023A82U
#define NM_RAS_PHONEBOOK_ENTRY_NAME 0x00023982U
#define NM_RAS_REMOTE_SRVR_NAME 0x0001004EU
#define NM_RDN_ATT_ID 0x0001001AU
#define NM_REF_FULL_REPLICAS 0x00010041U
#define NM_REF_MASTER_DSA 0x00010042U
#define NM_REMOTE_BRIDGE_HEAD 0x00023F81U
#define NM_REMOTE_BRIDGE_HEAD_ADDRESS 0x0001005EU
#define NM_REMOTE_OUT_BH_SERVER 0x00023682U
#define NM_REMOTE_SITE 0x0001001BU
#define NM_REPLICATION_MAIL_MSG_SIZE 0x00010067U
#define NM_REPLICATION_SENSITIVITY 0x00025F81U
#define NM_REPLICATION_STAGGER 0x00025D82U
#define NM_REPORT_TO_ORIGINATOR 0x00024E81U
#define NM_REPORT_TO_OWNER 0x00024F81U
#define NM_REPORTS 0x00023483U
#define NM_REPS_FROM 0x0001005BU
#define NM_REPS_TO 0x00010053U
#define NM_REPS_TO_EXT 0x0001002BU
#define NM_REQ_SEQ 0x00022D81U
#define NM_RESPONSIBLE_LOCAL_DXA 0x00022A82U
#define NM_RID_SERVER 0x00025A82U
#define NM_ROUTING_LIST 0x00026282U
#define NM_RTS_CHECKPOINT_SIZE 0x00021881U
#define NM_RTS_RECOVERY_TIMEOUT 0x00021781U
#define NM_RTS_WINDOW_SIZE 0x00021981U
#define NM_RUNS_ON 0x00023981U
#define NM_S_SELECTOR 0x00021C82U
#define NM_S_SELECTOR_INBOUND 0x0001002EU
#define NM_SCHEMA_FLAGS 0x00024E83U
#define NM_SCHEMA_VERSION 0x00025783U
#define NM_SEARCH_FLAGS 0x00024E82U
#define NM_SECURITY_PROTOCOL 0x00010052U
#define NM_SERVICE_ACTION_FIRST 0x00022181U
#define NM_SERVICE_ACTION_OTHER 0x0001003BU
#define NM_SERVICE_ACTION_SECOND 0x0001003CU
#define NM_SERVICE_RESTART_DELAY 0x00022281U
#define NM_SERVICE_RESTART_MESSAGE 0x0001003AU
#define NM_SESSION_DISCONNECT_TIMER 0x00021A81U
#define NM_SITE_AFFINITY 0x00023283U
#define NM_SITE_FOLDER_GUID 0x00024883U
#define NM_SITE_FOLDER_SERVER 0x00024983U
#define NM_SITE_PROXY_SPACE 0x00020183U
#define NM_SPACE_LAST_COMPUTED 0x00020283U
#define NM_SUB_CLASS_OF 0x00010015U
#define NM_SUB_REFS 0x00010007U
#define NM_SUB_SITE 0x00025683U
#define NM_SUBMISSION_CONT_LENGTH 0x00021882U
#define NM_SUPPORTING_STACK 0x0001001CU
#define NM_SUPPORTING_STACK_BL 0x00026582U
#define NM_T_SELECTOR 0x00021B82U
#define NM_T_SELECTOR_INBOUND 0x00010005U
#define NM_TARGET_ADDRESS 0x00026082U
#define NM_TARGET_MTAS 0x00020382U
#define NM_TELEPHONE_ASSISTANT 0x0001004FU
#define NM_TELEPHONE_FAX 0x0001002AU
#define NM_TELEPHONE_HOME 0x0001004DU
#define NM_TELEPHONE_HOME2 0x00021582U
#define NM_TELEPHONE_MOBILE 0x00010004U
#define NM_TELEPHONE_OFFICE1 0x00010076U
#define NM_TELEPHONE_OFFICE2 0x00010012U
#define NM_TELEPHONE_PAGER 0x00020682U
#define NM_TEMP_ASSOC_THRESHOLD 0x00024982U
#define NM_TEXT_COUNTRY 0x00020381U
#define NM_TOMBSTONE_LIFETIME 0x00010036U
#define NM_TRACKING_LOG_PATH_NAME 0x00025B82U
#define NM_TRANS_RETRY_MINS 0x00025B81U
#define NM_TRANS_TIMEOUT_MINS 0x00025C81U
#define NM_TRANSFER_RETRY_INTERVAL 0x00020581U
#define NM_TRANSFER_TIMEOUT_NON_URGENT 0x00020881U
#define NM_TRANSFER_TIMEOUT_NORMAL 0x00020981U
#define NM_TRANSFER_TIMEOUT_URGENT 0x00020E81U
#define NM_TRANSLATION_TABLE_USED 0x00020C83U
#define NM_TRANSPORT_EXPEDITED_DATA 0x00021681U
#define NM_TRUST_LEVEL 0x00010046U
#define NM_TURN_REQUEST_THRESHOLD 0x00010026U
#define NM_TWO_WAY_ALTERNATE_FACILITY 0x00010028U
#define NM_UNAUTH_ORIG 0x00025D81U
#define NM_UNAUTH_ORIG_BL 0x00022482U
#define NM_USE_SERVER_VALUES 0x00025983U
#define NM_USN_CHANGED 0x00010078U
#define NM_USN_CREATED 0x00010013U
#define NM_USN_DSA_LAST_OBJ_REMOVED 0x00020B82U
#define NM_USN_INTERSITE 0x00025583U
#define NM_USN_LAST_OBJ_REM 0x00010079U
#define NM_USN_SOURCE 0x00027682U
#define NM_WHEN_CHANGED 0x00010003U
#define NM_WHEN_CREATED 0x00010002U
#define NM_WWW_HOME_PAGE 0x00025083U
#define NM_X25_CALL_USER_DATA_INCOMING 0x00023C82U
#define NM_X25_CALL_USER_DATA_OUTGOING 0x00023D82U
#define NM_X25_FACILITIES_DATA_INCOMING 0x00023E82U
#define NM_X25_FACILITIES_DATA_OUTGOING 0x00023F82U
#define NM_X25_LEASED_LINE_PORT 0x00024182U
#define NM_X25_LEASED_OR_SWITCHED 0x00027482U
#define NM_X25_REMOTE_MTA_PHONE 0x00027582U
#define NM_X400_ATTACHMENT_TYPE 0x00010063U
#define NM_X400_SELECTOR_SYNTAX 0x00023B83U
#define NM_X500_ACCESS_CONTROL_LIST 0x00023183U
#define NM_X509_CERT 0x00024D83U
#define NM_XMIT_TIMEOUT_NON_URGENT 0x00010054U
#define NM_XMIT_TIMEOUT_NORMAL 0x00010043U
#define NM_XMIT_TIMEOUT_URGENT 0x00010035U
#define PS_BASIC_DIRECTORY \
"\x02\x55\x4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
#define NM_ALIASED_OBJECT_NAME 0x00010001U
#define NM_BUSINESS_CATEGORY 0x0001000FU
#define NM_COMMON_NAME 0x00010003U
#define NM_COUNTRY_NAME 0x00010006U
#define NM_DESCRIPTION 0x0001000DU
#define NM_DEST_INDICATOR 0x0001001BU
#define NM_FACSIMILE_PHONE_NBR 0x00010017U
#define NM_INTERNAT_ISDN_NBR 0x00010019U
#define NM_KNOWLEDGE_INFO 0x00010002U
#define NM_LOCALITY_NAME 0x00010007U
#define NM_MEMBER 0x0001001FU
#define NM_OBJECT_CLASS 0x00010000U
#define NM_ORG_NAME 0x0001000AU
#define NM_ORG_UNIT_NAME 0x0001000BU
#define NM_OWNER 0x00010020U
#define NM_PHYS_DELIV_OFF_NAME 0x00010013U
#define NM_POST_OFFICE_BOX 0x00010012U
#define NM_POSTAL_ADDRESS 0x00010010U
#define NM_POSTAL_CODE 0x00010011U
#define NM_PREF_DELIV_METHOD 0x0001001CU
#define NM_PRESENTATION_ADDRESS 0x0001001DU
#define NM_REGISTERED_ADDRESS 0x0001001AU
#define NM_ROLE_OCCUPANT 0x00010021U
#define NM_SEARCH_GUIDE 0x0001000EU
#define NM_SEE_ALSO 0x00010022U
#define NM_SERIAL_NBR 0x00010005U
#define NM_STATE_OR_PROV_NAME 0x00010008U
#define NM_STREET_ADDRESS 0x00010009U
#define NM_SUPPORT_APPL_CONTEXT 0x0001001EU
#define NM_SURNAME 0x00010004U
#define NM_PHONE_NBR 0x00010014U
#define NM_TELETEX_TERM_IDENT 0x00010016U
#define NM_TELEX_NBR 0x00010015U
#define NM_TITLE 0x0001000CU
#define NM_USER_PASSWORD 0x00010023U
#define NM_X121_ADDRESS 0x00010018U
#define PS_SECURITY_DIRECTORY \
"\x02\x55\x4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
#define NM_AUTHORITY_REVOC_LIST 0x00010026U
#define NM_CA_CERT 0x00010025U
#define NM_CERT_REVOC_LIST 0x00010027U
#define NM_CROSS_CERT_PAIR 0x00010028U
#define NM_USER_CERT 0x00010024U
#endif
@@ -0,0 +1,717 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 3.02.88 */
/* at Thu Nov 13 19:28:38 1997
*/
/* Compiler settings for austream.idl:
Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: none
*/
//@@MIDL_FILE_HEADING( )
#include "rpc.h"
#include "rpcndr.h"
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __austream_h__
#define __austream_h__
#ifdef __cplusplus
extern "C"{
#endif
/* Forward Declarations */
#ifndef __IAudioMediaStream_FWD_DEFINED__
#define __IAudioMediaStream_FWD_DEFINED__
typedef interface IAudioMediaStream IAudioMediaStream;
#endif /* __IAudioMediaStream_FWD_DEFINED__ */
#ifndef __IAudioStreamSample_FWD_DEFINED__
#define __IAudioStreamSample_FWD_DEFINED__
typedef interface IAudioStreamSample IAudioStreamSample;
#endif /* __IAudioStreamSample_FWD_DEFINED__ */
#ifndef __IMemoryData_FWD_DEFINED__
#define __IMemoryData_FWD_DEFINED__
typedef interface IMemoryData IMemoryData;
#endif /* __IMemoryData_FWD_DEFINED__ */
#ifndef __IAudioData_FWD_DEFINED__
#define __IAudioData_FWD_DEFINED__
typedef interface IAudioData IAudioData;
#endif /* __IAudioData_FWD_DEFINED__ */
/* header files for imported files */
#include "unknwn.h"
#include "mmstream.h"
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * );
/****************************************
* Generated header for interface: __MIDL_itf_austream_0000
* at Thu Nov 13 19:28:38 1997
* using MIDL 3.02.88
****************************************/
/* [local] */
//
// The following declarations within the 'if 0' block are dummy typedefs used to make
// the ddstream.idl file build. The actual definitions are contained in DDRAW.H
//
#if 0
typedef struct tWAVEFORMATEX WAVEFORMATEX;
#endif
extern RPC_IF_HANDLE __MIDL_itf_austream_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_austream_0000_v0_0_s_ifspec;
#ifndef __IAudioMediaStream_INTERFACE_DEFINED__
#define __IAudioMediaStream_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: IAudioMediaStream
* at Thu Nov 13 19:28:38 1997
* using MIDL 3.02.88
****************************************/
/* [unique][uuid][local][object] */
EXTERN_C const IID IID_IAudioMediaStream;
#if defined(__cplusplus) && !defined(CINTERFACE)
interface DECLSPEC_UUID("f7537560-a3be-11d0-8212-00c04fc32c45")
IAudioMediaStream : public IMediaStream
{
public:
virtual HRESULT STDMETHODCALLTYPE GetFormat(
/* [optional][out] */ WAVEFORMATEX __RPC_FAR *pWaveFormatCurrent) = 0;
virtual HRESULT STDMETHODCALLTYPE SetFormat(
/* [in] */ const WAVEFORMATEX __RPC_FAR *lpWaveFormat) = 0;
virtual HRESULT STDMETHODCALLTYPE CreateSample(
/* [in] */ IAudioData __RPC_FAR *pAudioData,
/* [in] */ DWORD dwFlags,
/* [out] */ IAudioStreamSample __RPC_FAR *__RPC_FAR *ppSample) = 0;
};
#else /* C style interface */
typedef struct IAudioMediaStreamVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IAudioMediaStream __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IAudioMediaStream __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IAudioMediaStream __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMultiMediaStream )(
IAudioMediaStream __RPC_FAR * This,
/* [out] */ IMultiMediaStream __RPC_FAR *__RPC_FAR *ppMultiMediaStream);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetInformation )(
IAudioMediaStream __RPC_FAR * This,
/* [optional][out] */ MSPID __RPC_FAR *pPurposeId,
/* [optional][out] */ STREAM_TYPE __RPC_FAR *pType);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetSameFormat )(
IAudioMediaStream __RPC_FAR * This,
/* [in] */ IMediaStream __RPC_FAR *pStreamThatHasDesiredFormat,
/* [in] */ DWORD dwFlags);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *AllocateSample )(
IAudioMediaStream __RPC_FAR * This,
/* [in] */ DWORD dwFlags,
/* [out] */ IStreamSample __RPC_FAR *__RPC_FAR *ppSample);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateSharedSample )(
IAudioMediaStream __RPC_FAR * This,
/* [in] */ IStreamSample __RPC_FAR *pExistingSample,
/* [in] */ DWORD dwFlags,
/* [out] */ IStreamSample __RPC_FAR *__RPC_FAR *ppNewSample);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SendEndOfStream )(
IAudioMediaStream __RPC_FAR * This,
DWORD dwFlags);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetFormat )(
IAudioMediaStream __RPC_FAR * This,
/* [optional][out] */ WAVEFORMATEX __RPC_FAR *pWaveFormatCurrent);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetFormat )(
IAudioMediaStream __RPC_FAR * This,
/* [in] */ const WAVEFORMATEX __RPC_FAR *lpWaveFormat);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateSample )(
IAudioMediaStream __RPC_FAR * This,
/* [in] */ IAudioData __RPC_FAR *pAudioData,
/* [in] */ DWORD dwFlags,
/* [out] */ IAudioStreamSample __RPC_FAR *__RPC_FAR *ppSample);
END_INTERFACE
} IAudioMediaStreamVtbl;
interface IAudioMediaStream
{
CONST_VTBL struct IAudioMediaStreamVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IAudioMediaStream_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IAudioMediaStream_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IAudioMediaStream_Release(This) \
(This)->lpVtbl -> Release(This)
#define IAudioMediaStream_GetMultiMediaStream(This,ppMultiMediaStream) \
(This)->lpVtbl -> GetMultiMediaStream(This,ppMultiMediaStream)
#define IAudioMediaStream_GetInformation(This,pPurposeId,pType) \
(This)->lpVtbl -> GetInformation(This,pPurposeId,pType)
#define IAudioMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) \
(This)->lpVtbl -> SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
#define IAudioMediaStream_AllocateSample(This,dwFlags,ppSample) \
(This)->lpVtbl -> AllocateSample(This,dwFlags,ppSample)
#define IAudioMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) \
(This)->lpVtbl -> CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
#define IAudioMediaStream_SendEndOfStream(This,dwFlags) \
(This)->lpVtbl -> SendEndOfStream(This,dwFlags)
#define IAudioMediaStream_GetFormat(This,pWaveFormatCurrent) \
(This)->lpVtbl -> GetFormat(This,pWaveFormatCurrent)
#define IAudioMediaStream_SetFormat(This,lpWaveFormat) \
(This)->lpVtbl -> SetFormat(This,lpWaveFormat)
#define IAudioMediaStream_CreateSample(This,pAudioData,dwFlags,ppSample) \
(This)->lpVtbl -> CreateSample(This,pAudioData,dwFlags,ppSample)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IAudioMediaStream_GetFormat_Proxy(
IAudioMediaStream __RPC_FAR * This,
/* [optional][out] */ WAVEFORMATEX __RPC_FAR *pWaveFormatCurrent);
void __RPC_STUB IAudioMediaStream_GetFormat_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IAudioMediaStream_SetFormat_Proxy(
IAudioMediaStream __RPC_FAR * This,
/* [in] */ const WAVEFORMATEX __RPC_FAR *lpWaveFormat);
void __RPC_STUB IAudioMediaStream_SetFormat_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IAudioMediaStream_CreateSample_Proxy(
IAudioMediaStream __RPC_FAR * This,
/* [in] */ IAudioData __RPC_FAR *pAudioData,
/* [in] */ DWORD dwFlags,
/* [out] */ IAudioStreamSample __RPC_FAR *__RPC_FAR *ppSample);
void __RPC_STUB IAudioMediaStream_CreateSample_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IAudioMediaStream_INTERFACE_DEFINED__ */
#ifndef __IAudioStreamSample_INTERFACE_DEFINED__
#define __IAudioStreamSample_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: IAudioStreamSample
* at Thu Nov 13 19:28:38 1997
* using MIDL 3.02.88
****************************************/
/* [unique][uuid][local][object] */
EXTERN_C const IID IID_IAudioStreamSample;
#if defined(__cplusplus) && !defined(CINTERFACE)
interface DECLSPEC_UUID("345fee00-aba5-11d0-8212-00c04fc32c45")
IAudioStreamSample : public IStreamSample
{
public:
virtual HRESULT STDMETHODCALLTYPE GetAudioData(
/* [out] */ IAudioData __RPC_FAR *__RPC_FAR *ppAudio) = 0;
};
#else /* C style interface */
typedef struct IAudioStreamSampleVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IAudioStreamSample __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IAudioStreamSample __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IAudioStreamSample __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetMediaStream )(
IAudioStreamSample __RPC_FAR * This,
/* [in] */ IMediaStream __RPC_FAR *__RPC_FAR *ppMediaStream);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetSampleTimes )(
IAudioStreamSample __RPC_FAR * This,
/* [optional][out] */ STREAM_TIME __RPC_FAR *pStartTime,
/* [optional][out] */ STREAM_TIME __RPC_FAR *pEndTime,
/* [optional][out] */ STREAM_TIME __RPC_FAR *pCurrentTime);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetSampleTimes )(
IAudioStreamSample __RPC_FAR * This,
/* [optional][in] */ const STREAM_TIME __RPC_FAR *pStartTime,
/* [optional][in] */ const STREAM_TIME __RPC_FAR *pEndTime);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Update )(
IAudioStreamSample __RPC_FAR * This,
/* [in] */ DWORD dwFlags,
/* [optional][in] */ HANDLE hEvent,
/* [optional][in] */ PAPCFUNC pfnAPC,
/* [optional][in] */ DWORD dwAPCData);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CompletionStatus )(
IAudioStreamSample __RPC_FAR * This,
/* [in] */ DWORD dwFlags,
/* [optional][in] */ DWORD dwMilliseconds);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAudioData )(
IAudioStreamSample __RPC_FAR * This,
/* [out] */ IAudioData __RPC_FAR *__RPC_FAR *ppAudio);
END_INTERFACE
} IAudioStreamSampleVtbl;
interface IAudioStreamSample
{
CONST_VTBL struct IAudioStreamSampleVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IAudioStreamSample_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IAudioStreamSample_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IAudioStreamSample_Release(This) \
(This)->lpVtbl -> Release(This)
#define IAudioStreamSample_GetMediaStream(This,ppMediaStream) \
(This)->lpVtbl -> GetMediaStream(This,ppMediaStream)
#define IAudioStreamSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) \
(This)->lpVtbl -> GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)
#define IAudioStreamSample_SetSampleTimes(This,pStartTime,pEndTime) \
(This)->lpVtbl -> SetSampleTimes(This,pStartTime,pEndTime)
#define IAudioStreamSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) \
(This)->lpVtbl -> Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)
#define IAudioStreamSample_CompletionStatus(This,dwFlags,dwMilliseconds) \
(This)->lpVtbl -> CompletionStatus(This,dwFlags,dwMilliseconds)
#define IAudioStreamSample_GetAudioData(This,ppAudio) \
(This)->lpVtbl -> GetAudioData(This,ppAudio)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IAudioStreamSample_GetAudioData_Proxy(
IAudioStreamSample __RPC_FAR * This,
/* [out] */ IAudioData __RPC_FAR *__RPC_FAR *ppAudio);
void __RPC_STUB IAudioStreamSample_GetAudioData_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IAudioStreamSample_INTERFACE_DEFINED__ */
#ifndef __IMemoryData_INTERFACE_DEFINED__
#define __IMemoryData_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: IMemoryData
* at Thu Nov 13 19:28:38 1997
* using MIDL 3.02.88
****************************************/
/* [unique][uuid][local][object] */
EXTERN_C const IID IID_IMemoryData;
#if defined(__cplusplus) && !defined(CINTERFACE)
interface DECLSPEC_UUID("327fc560-af60-11d0-8212-00c04fc32c45")
IMemoryData : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE SetBuffer(
/* [in] */ DWORD cbSize,
/* [in] */ BYTE __RPC_FAR *pbData,
/* [in] */ DWORD dwFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE GetInfo(
/* [out] */ DWORD __RPC_FAR *pdwLength,
/* [out] */ BYTE __RPC_FAR *__RPC_FAR *ppbData,
/* [out] */ DWORD __RPC_FAR *pcbActualData) = 0;
virtual HRESULT STDMETHODCALLTYPE SetActual(
/* [in] */ DWORD cbDataValid) = 0;
};
#else /* C style interface */
typedef struct IMemoryDataVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IMemoryData __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IMemoryData __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IMemoryData __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetBuffer )(
IMemoryData __RPC_FAR * This,
/* [in] */ DWORD cbSize,
/* [in] */ BYTE __RPC_FAR *pbData,
/* [in] */ DWORD dwFlags);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetInfo )(
IMemoryData __RPC_FAR * This,
/* [out] */ DWORD __RPC_FAR *pdwLength,
/* [out] */ BYTE __RPC_FAR *__RPC_FAR *ppbData,
/* [out] */ DWORD __RPC_FAR *pcbActualData);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetActual )(
IMemoryData __RPC_FAR * This,
/* [in] */ DWORD cbDataValid);
END_INTERFACE
} IMemoryDataVtbl;
interface IMemoryData
{
CONST_VTBL struct IMemoryDataVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IMemoryData_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IMemoryData_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IMemoryData_Release(This) \
(This)->lpVtbl -> Release(This)
#define IMemoryData_SetBuffer(This,cbSize,pbData,dwFlags) \
(This)->lpVtbl -> SetBuffer(This,cbSize,pbData,dwFlags)
#define IMemoryData_GetInfo(This,pdwLength,ppbData,pcbActualData) \
(This)->lpVtbl -> GetInfo(This,pdwLength,ppbData,pcbActualData)
#define IMemoryData_SetActual(This,cbDataValid) \
(This)->lpVtbl -> SetActual(This,cbDataValid)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IMemoryData_SetBuffer_Proxy(
IMemoryData __RPC_FAR * This,
/* [in] */ DWORD cbSize,
/* [in] */ BYTE __RPC_FAR *pbData,
/* [in] */ DWORD dwFlags);
void __RPC_STUB IMemoryData_SetBuffer_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMemoryData_GetInfo_Proxy(
IMemoryData __RPC_FAR * This,
/* [out] */ DWORD __RPC_FAR *pdwLength,
/* [out] */ BYTE __RPC_FAR *__RPC_FAR *ppbData,
/* [out] */ DWORD __RPC_FAR *pcbActualData);
void __RPC_STUB IMemoryData_GetInfo_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMemoryData_SetActual_Proxy(
IMemoryData __RPC_FAR * This,
/* [in] */ DWORD cbDataValid);
void __RPC_STUB IMemoryData_SetActual_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IMemoryData_INTERFACE_DEFINED__ */
#ifndef __IAudioData_INTERFACE_DEFINED__
#define __IAudioData_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: IAudioData
* at Thu Nov 13 19:28:38 1997
* using MIDL 3.02.88
****************************************/
/* [unique][uuid][local][object] */
EXTERN_C const IID IID_IAudioData;
#if defined(__cplusplus) && !defined(CINTERFACE)
interface DECLSPEC_UUID("54c719c0-af60-11d0-8212-00c04fc32c45")
IAudioData : public IMemoryData
{
public:
virtual HRESULT STDMETHODCALLTYPE GetFormat(
/* [optional][out] */ WAVEFORMATEX __RPC_FAR *pWaveFormatCurrent) = 0;
virtual HRESULT STDMETHODCALLTYPE SetFormat(
/* [in] */ const WAVEFORMATEX __RPC_FAR *lpWaveFormat) = 0;
};
#else /* C style interface */
typedef struct IAudioDataVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
IAudioData __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
IAudioData __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
IAudioData __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetBuffer )(
IAudioData __RPC_FAR * This,
/* [in] */ DWORD cbSize,
/* [in] */ BYTE __RPC_FAR *pbData,
/* [in] */ DWORD dwFlags);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetInfo )(
IAudioData __RPC_FAR * This,
/* [out] */ DWORD __RPC_FAR *pdwLength,
/* [out] */ BYTE __RPC_FAR *__RPC_FAR *ppbData,
/* [out] */ DWORD __RPC_FAR *pcbActualData);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetActual )(
IAudioData __RPC_FAR * This,
/* [in] */ DWORD cbDataValid);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetFormat )(
IAudioData __RPC_FAR * This,
/* [optional][out] */ WAVEFORMATEX __RPC_FAR *pWaveFormatCurrent);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetFormat )(
IAudioData __RPC_FAR * This,
/* [in] */ const WAVEFORMATEX __RPC_FAR *lpWaveFormat);
END_INTERFACE
} IAudioDataVtbl;
interface IAudioData
{
CONST_VTBL struct IAudioDataVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define IAudioData_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define IAudioData_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define IAudioData_Release(This) \
(This)->lpVtbl -> Release(This)
#define IAudioData_SetBuffer(This,cbSize,pbData,dwFlags) \
(This)->lpVtbl -> SetBuffer(This,cbSize,pbData,dwFlags)
#define IAudioData_GetInfo(This,pdwLength,ppbData,pcbActualData) \
(This)->lpVtbl -> GetInfo(This,pdwLength,ppbData,pcbActualData)
#define IAudioData_SetActual(This,cbDataValid) \
(This)->lpVtbl -> SetActual(This,cbDataValid)
#define IAudioData_GetFormat(This,pWaveFormatCurrent) \
(This)->lpVtbl -> GetFormat(This,pWaveFormatCurrent)
#define IAudioData_SetFormat(This,lpWaveFormat) \
(This)->lpVtbl -> SetFormat(This,lpWaveFormat)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE IAudioData_GetFormat_Proxy(
IAudioData __RPC_FAR * This,
/* [optional][out] */ WAVEFORMATEX __RPC_FAR *pWaveFormatCurrent);
void __RPC_STUB IAudioData_GetFormat_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE IAudioData_SetFormat_Proxy(
IAudioData __RPC_FAR * This,
/* [in] */ const WAVEFORMATEX __RPC_FAR *lpWaveFormat);
void __RPC_STUB IAudioData_SetFormat_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __IAudioData_INTERFACE_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif
@@ -0,0 +1,97 @@
import "unknwn.idl";
import "mmstream.idl";
cpp_quote("//")
cpp_quote("// The following declarations within the 'if 0' block are dummy typedefs used to make")
cpp_quote("// the ddstream.idl file build. The actual definitions are contained in DDRAW.H")
cpp_quote("//")
cpp_quote("#if 0")
typedef struct tWAVEFORMATEX WAVEFORMATEX;
cpp_quote ("#endif")
interface IAudioMediaStream;
interface IAudioStreamSample;
interface IMemoryData;
interface IAudioData;
// IAudioMediaStream
[
object,
local,
uuid(f7537560-a3be-11d0-8212-00c04fc32c45),
pointer_default(unique)
]
interface IAudioMediaStream : IMediaStream
{
HRESULT GetFormat(
[out] [optional] WAVEFORMATEX *pWaveFormatCurrent
);
HRESULT SetFormat(
[in] const WAVEFORMATEX *lpWaveFormat);
HRESULT CreateSample(
[in] IAudioData *pAudioData,
[in] DWORD dwFlags,
[out] IAudioStreamSample **ppSample
);
}
[
object,
local,
uuid(345fee00-aba5-11d0-8212-00c04fc32c45),
pointer_default(unique)
]
interface IAudioStreamSample : IStreamSample
{
HRESULT GetAudioData(
[out] IAudioData **ppAudio
);
}
[
object,
local,
uuid(327fc560-af60-11d0-8212-00c04fc32c45),
pointer_default(unique)
]
interface IMemoryData : IUnknown
{
HRESULT SetBuffer(
[in] DWORD cbSize,
[in] BYTE *pbData,
[in] DWORD dwFlags
);
HRESULT GetInfo(
[out] DWORD *pdwLength,
[out] BYTE **ppbData,
[out] DWORD *pcbActualData
);
HRESULT SetActual(
[in] DWORD cbDataValid
);
}
[
object,
local,
uuid(54c719c0-af60-11d0-8212-00c04fc32c45),
pointer_default(unique)
]
interface IAudioData : IMemoryData
{
HRESULT GetFormat(
[out] [optional] WAVEFORMATEX *pWaveFormatCurrent
);
HRESULT SetFormat(
[in] const WAVEFORMATEX *lpWaveFormat
);
}
@@ -0,0 +1,251 @@
/****************************************************************************/
/* */
/* AVIFMT.H - Include file for working with AVI files */
/* */
/* Note: You must include WINDOWS.H and MMSYSTEM.H before */
/* including this file. */
/* */
/* Copyright 1991 - 1998, Microsoft Corp. All rights reserved. */
/* */
/* */
/****************************************************************************/
#ifndef _INC_AVIFMT
#define _INC_AVIFMT 100 /* version number * 100 + revision */
#ifdef __cplusplus
extern "C" { /* Assume C declarations for C++ */
#endif /* __cplusplus */
// begin_vfw32
#ifdef _MSC_VER
#pragma warning(disable:4200)
#endif
/* The following is a short description of the AVI file format. Please
* see the accompanying documentation for a full explanation.
*
* An AVI file is the following RIFF form:
*
* RIFF('AVI'
* LIST('hdrl'
* avih(<MainAVIHeader>)
* LIST ('strl'
* strh(<Stream header>)
* strf(<Stream format>)
* ... additional header data
* LIST('movi'
* { LIST('rec'
* SubChunk...
* )
* | SubChunk } ....
* )
* [ <AVIIndex> ]
* )
*
* The main file header specifies how many streams are present. For
* each one, there must be a stream header chunk and a stream format
* chunk, enlosed in a 'strl' LIST chunk. The 'strf' chunk contains
* type-specific format information; for a video stream, this should
* be a BITMAPINFO structure, including palette. For an audio stream,
* this should be a WAVEFORMAT (or PCMWAVEFORMAT) structure.
*
* The actual data is contained in subchunks within the 'movi' LIST
* chunk. The first two characters of each data chunk are the
* stream number with which that data is associated.
*
* Some defined chunk types:
* Video Streams:
* ##db: RGB DIB bits
* ##dc: RLE8 compressed DIB bits
* ##pc: Palette Change
*
* Audio Streams:
* ##wb: waveform audio bytes
*
* The grouping into LIST 'rec' chunks implies only that the contents of
* the chunk should be read into memory at the same time. This
* grouping is used for files specifically intended to be played from
* CD-ROM.
*
* The index chunk at the end of the file should contain one entry for
* each data chunk in the file.
*
* Limitations for the current software:
* Only one video stream and one audio stream are allowed.
* The streams must start at the beginning of the file.
*
*
* To register codec types please obtain a copy of the Multimedia
* Developer Registration Kit from:
*
* Microsoft Corporation
* Multimedia Systems Group
* Product Marketing
* One Microsoft Way
* Redmond, WA 98052-6399
*
*/
#ifndef mmioFOURCC
#define mmioFOURCC( ch0, ch1, ch2, ch3 ) \
( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) | \
( (DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ) )
#endif
/* Macro to make a TWOCC out of two characters */
#ifndef aviTWOCC
#define aviTWOCC(ch0, ch1) ((WORD)(BYTE)(ch0) | ((WORD)(BYTE)(ch1) << 8))
#endif
typedef WORD TWOCC;
/* form types, list types, and chunk types */
#define formtypeAVI mmioFOURCC('A', 'V', 'I', ' ')
#define listtypeAVIHEADER mmioFOURCC('h', 'd', 'r', 'l')
#define ckidAVIMAINHDR mmioFOURCC('a', 'v', 'i', 'h')
#define listtypeSTREAMHEADER mmioFOURCC('s', 't', 'r', 'l')
#define ckidSTREAMHEADER mmioFOURCC('s', 't', 'r', 'h')
#define ckidSTREAMFORMAT mmioFOURCC('s', 't', 'r', 'f')
#define ckidSTREAMHANDLERDATA mmioFOURCC('s', 't', 'r', 'd')
#define ckidSTREAMNAME mmioFOURCC('s', 't', 'r', 'n')
#define listtypeAVIMOVIE mmioFOURCC('m', 'o', 'v', 'i')
#define listtypeAVIRECORD mmioFOURCC('r', 'e', 'c', ' ')
#define ckidAVINEWINDEX mmioFOURCC('i', 'd', 'x', '1')
/*
** Stream types for the <fccType> field of the stream header.
*/
#define streamtypeVIDEO mmioFOURCC('v', 'i', 'd', 's')
#define streamtypeAUDIO mmioFOURCC('a', 'u', 'd', 's')
#define streamtypeMIDI mmioFOURCC('m', 'i', 'd', 's')
#define streamtypeTEXT mmioFOURCC('t', 'x', 't', 's')
/* Basic chunk types */
#define cktypeDIBbits aviTWOCC('d', 'b')
#define cktypeDIBcompressed aviTWOCC('d', 'c')
#define cktypePALchange aviTWOCC('p', 'c')
#define cktypeWAVEbytes aviTWOCC('w', 'b')
/* Chunk id to use for extra chunks for padding. */
#define ckidAVIPADDING mmioFOURCC('J', 'U', 'N', 'K')
/*
** Useful macros
**
** Warning: These are nasty macro, and MS C 6.0 compiles some of them
** incorrectly if optimizations are on. Ack.
*/
/* Macro to get stream number out of a FOURCC ckid */
#define FromHex(n) (((n) >= 'A') ? ((n) + 10 - 'A') : ((n) - '0'))
#define StreamFromFOURCC(fcc) ((WORD) ((FromHex(LOBYTE(LOWORD(fcc))) << 4) + \
(FromHex(HIBYTE(LOWORD(fcc))))))
/* Macro to get TWOCC chunk type out of a FOURCC ckid */
#define TWOCCFromFOURCC(fcc) HIWORD(fcc)
/* Macro to make a ckid for a chunk out of a TWOCC and a stream number
** from 0-255.
*/
#define ToHex(n) ((BYTE) (((n) > 9) ? ((n) - 10 + 'A') : ((n) + '0')))
#define MAKEAVICKID(tcc, stream) \
MAKELONG((ToHex((stream) & 0x0f) << 8) | \
(ToHex(((stream) & 0xf0) >> 4)), tcc)
/*
** Main AVI File Header
*/
/* flags for use in <dwFlags> in AVIFileHdr */
#define AVIF_HASINDEX 0x00000010 // Index at end of file
#define AVIF_MUSTUSEINDEX 0x00000020
#define AVIF_ISINTERLEAVED 0x00000100
#define AVIF_TRUSTCKTYPE 0x00000800 // Use CKType to find key frames
#define AVIF_WASCAPTUREFILE 0x00010000
#define AVIF_COPYRIGHTED 0x00020000
/* The AVI File Header LIST chunk should be padded to this size */
#define AVI_HEADERSIZE 2048 // size of AVI header list
typedef struct
{
DWORD dwMicroSecPerFrame; // frame display rate (or 0L)
DWORD dwMaxBytesPerSec; // max. transfer rate
DWORD dwPaddingGranularity; // pad to multiples of this
// size; normally 2K.
DWORD dwFlags; // the ever-present flags
DWORD dwTotalFrames; // # frames in file
DWORD dwInitialFrames;
DWORD dwStreams;
DWORD dwSuggestedBufferSize;
DWORD dwWidth;
DWORD dwHeight;
DWORD dwReserved[4];
} MainAVIHeader;
/*
** Stream header
*/
#define AVISF_DISABLED 0x00000001
#define AVISF_VIDEO_PALCHANGES 0x00010000
typedef struct {
FOURCC fccType;
FOURCC fccHandler;
DWORD dwFlags; /* Contains AVITF_* flags */
WORD wPriority;
WORD wLanguage;
DWORD dwInitialFrames;
DWORD dwScale;
DWORD dwRate; /* dwRate / dwScale == samples/second */
DWORD dwStart;
DWORD dwLength; /* In units above... */
DWORD dwSuggestedBufferSize;
DWORD dwQuality;
DWORD dwSampleSize;
RECT rcFrame;
} AVIStreamHeader;
/* Flags for index */
#define AVIIF_LIST 0x00000001L // chunk is a 'LIST'
#define AVIIF_KEYFRAME 0x00000010L // this frame is a key frame.
#define AVIIF_NOTIME 0x00000100L // this frame doesn't take any time
#define AVIIF_COMPUSE 0x0FFF0000L // these bits are for compressor use
typedef struct
{
DWORD ckid;
DWORD dwFlags;
DWORD dwChunkOffset; // Position of chunk
DWORD dwChunkLength; // Length of chunk
} AVIINDEXENTRY;
/*
** Palette change chunk
**
** Used in video streams.
*/
typedef struct
{
BYTE bFirstEntry; /* first entry to change */
BYTE bNumEntries; /* # entries to change (0 if 256) */
WORD wFlags; /* Mostly to preserve alignment... */
PALETTEENTRY peNew[]; /* New color specifications */
} AVIPALCHANGE;
// end_vfw32
#ifdef __cplusplus
} /* End of extern "C" { */
#endif /* __cplusplus */
#endif /* _INC_AVIFMT */
@@ -0,0 +1,403 @@
//==========================================================================;
//
// Copyright (c) 1996 - 1997 Microsoft Corporation. All Rights Reserved.
//
//--------------------------------------------------------------------------;
#pragma warning(disable: 4097 4511 4512 4514 4705)
/*+
*
* Structures and defines for the RIFF AVI file format extended to
* handle very large/long files
*
*-=====================================================================*/
#if !defined AVIRIFF_H
#define AVIRIFF_H
#if !defined NUMELMS
#define NUMELMS(aa) (sizeof(aa)/sizeof((aa)[0]))
#endif
// all structures in this file are packed on word boundaries
//
#include <pshpack2.h>
/*
* heres the general layout of an AVI riff file (new format)
*
* RIFF (3F??????) AVI <- not more than 1 GB in size
* LIST (size) hdrl
* avih (0038)
* LIST (size) strl
* strh (0038)
* strf (????)
* indx (3ff8) <- size may vary, should be sector sized
* LIST (size) strl
* strh (0038)
* strf (????)
* indx (3ff8) <- size may vary, should be sector sized
* LIST (size) odml
* dmlh (????)
* JUNK (size) <- fill to align to sector - 12
* LIST (7f??????) movi <- aligned on sector - 12
* 00dc (size) <- sector aligned
* 01wb (size) <- sector aligned
* ix00 (size) <- sector aligned
* idx1 (00??????) <- sector aligned
* RIFF (7F??????) AVIX
* JUNK (size) <- fill to align to sector -12
* LIST (size) movi
* 00dc (size) <- sector aligned
* RIFF (7F??????) AVIX <- not more than 2GB in size
* JUNK (size) <- fill to align to sector - 12
* LIST (size) movi
* 00dc (size) <- sector aligned
*
*-===================================================================*/
//
// structures for manipulating RIFF headers
//
#define FCC(ch4) ((((DWORD)(ch4) & 0xFF) << 24) | \
(((DWORD)(ch4) & 0xFF00) << 8) | \
(((DWORD)(ch4) & 0xFF0000) >> 8) | \
(((DWORD)(ch4) & 0xFF000000) >> 24))
typedef struct _riffchunk {
FOURCC fcc;
DWORD cb;
} RIFFCHUNK, * LPRIFFCHUNK;
typedef struct _rifflist {
FOURCC fcc;
DWORD cb;
FOURCC fccListType;
} RIFFLIST, * LPRIFFLIST;
#define RIFFROUND(cb) ((cb) + ((cb)&1))
#define RIFFNEXT(pChunk) (LPRIFFCHUNK)((LPBYTE)(pChunk) \
+ sizeof(RIFFCHUNK) \
+ RIFFROUND(((LPRIFFCHUNK)pChunk)->cb))
//
// ==================== avi header structures ===========================
//
// main header for the avi file (compatibility header)
//
#define ckidMAINAVIHEADER FCC('avih')
typedef struct _avimainheader {
FOURCC fcc; // 'avih'
DWORD cb; // size of this structure -8
DWORD dwMicroSecPerFrame; // frame display rate (or 0L)
DWORD dwMaxBytesPerSec; // max. transfer rate
DWORD dwPaddingGranularity; // pad to multiples of this size; normally 2K.
DWORD dwFlags; // the ever-present flags
#define AVIF_HASINDEX 0x00000010 // Index at end of file?
#define AVIF_MUSTUSEINDEX 0x00000020
#define AVIF_ISINTERLEAVED 0x00000100
#define AVIF_TRUSTCKTYPE 0x00000800 // Use CKType to find key frames
#define AVIF_WASCAPTUREFILE 0x00010000
#define AVIF_COPYRIGHTED 0x00020000
DWORD dwTotalFrames; // # frames in first movi list
DWORD dwInitialFrames;
DWORD dwStreams;
DWORD dwSuggestedBufferSize;
DWORD dwWidth;
DWORD dwHeight;
DWORD dwReserved[4];
} AVIMAINHEADER;
#define ckidODML FCC('odml')
#define ckidAVIEXTHEADER FCC('dmlh')
typedef struct _aviextheader {
FOURCC fcc; // 'dmlh'
DWORD cb; // size of this structure -8
DWORD dwGrandFrames; // total number of frames in the file
DWORD dwFuture[61]; // to be defined later
} AVIEXTHEADER;
//
// structure of an AVI stream header riff chunk
//
#define ckidSTREAMLIST FCC('strl')
#ifndef ckidSTREAMHEADER
#define ckidSTREAMHEADER FCC('strh')
#endif
typedef struct _avistreamheader {
FOURCC fcc; // 'strh'
DWORD cb; // size of this structure - 8
FOURCC fccType; // stream type codes
#ifndef streamtypeVIDEO
#define streamtypeVIDEO FCC('vids')
#define streamtypeAUDIO FCC('auds')
#define streamtypeMIDI FCC('mids')
#define streamtypeTEXT FCC('txts')
#endif
FOURCC fccHandler;
DWORD dwFlags;
#define AVISF_DISABLED 0x00000001
#define AVISF_VIDEO_PALCHANGES 0x00010000
WORD wPriority;
WORD wLanguage;
DWORD dwInitialFrames;
DWORD dwScale;
DWORD dwRate; // dwRate/dwScale is stream tick rate in ticks/sec
DWORD dwStart;
DWORD dwLength;
DWORD dwSuggestedBufferSize;
DWORD dwQuality;
DWORD dwSampleSize;
struct {
short int left;
short int top;
short int right;
short int bottom;
} rcFrame;
} AVISTREAMHEADER;
//
// structure of an AVI stream format chunk
//
#ifndef ckidSTREAMFORMAT
#define ckidSTREAMFORMAT FCC('strf')
#endif
//
// avi stream formats are different for each stream type
//
// BITMAPINFOHEADER for video streams
// WAVEFORMATEX or PCMWAVEFORMAT for audio streams
// nothing for text streams
// nothing for midi streams
#pragma warning(disable:4200)
//
// structure of old style AVI index
//
#define ckidAVIOLDINDEX FCC('idx1')
typedef struct _avioldindex {
FOURCC fcc; // 'idx1'
DWORD cb; // size of this structure -8
struct _avioldindex_entry {
DWORD dwChunkId;
DWORD dwFlags;
#ifndef AVIIF_LIST
#define AVIIF_LIST 0x00000001
#define AVIIF_KEYFRAME 0x00000010
#endif
#define AVIIF_NO_TIME 0x00000100
#define AVIIF_COMPRESSOR 0x0FFF0000 // unused?
DWORD dwOffset; // offset of riff chunk header for the data
DWORD dwSize; // size of the data (excluding riff header size)
} aIndex[]; // size of this array
} AVIOLDINDEX;
//
// ============ structures for timecode in an AVI file =================
//
#ifndef TIMECODE_DEFINED
#define TIMECODE_DEFINED
// defined
// timecode time structure
//
typedef union _timecode {
struct {
WORD wFrameRate;
WORD wFrameFract;
LONG cFrames;
};
DWORDLONG qw;
} TIMECODE;
#endif // TIMECODE_DEFINED
#define TIMECODE_RATE_30DROP 0 // this MUST be zero
// struct for all the SMPTE timecode info
//
typedef struct _timecodedata {
TIMECODE time;
DWORD dwSMPTEflags;
DWORD dwUser;
} TIMECODEDATA;
// dwSMPTEflags masks/values
//
#define TIMECODE_SMPTE_BINARY_GROUP 0x07
#define TIMECODE_SMPTE_COLOR_FRAME 0x08
//
// ============ structures for new style AVI indexes =================
//
// index type codes
//
#define AVI_INDEX_OF_INDEXES 0x00
#define AVI_INDEX_OF_CHUNKS 0x01
#define AVI_INDEX_OF_TIMED_CHUNKS 0x02
#define AVI_INDEX_OF_SUB_2FIELD 0x03
#define AVI_INDEX_IS_DATA 0x80
// index subtype codes
//
#define AVI_INDEX_SUB_DEFAULT 0x00
// INDEX_OF_CHUNKS subtype codes
//
#define AVI_INDEX_SUB_2FIELD 0x01
// meta structure of all avi indexes
//
typedef struct _avimetaindex {
FOURCC fcc;
UINT cb;
WORD wLongsPerEntry;
BYTE bIndexSubType;
BYTE bIndexType;
DWORD nEntriesInUse;
DWORD dwChunkId;
DWORD dwReserved[3];
DWORD adwIndex[];
} AVIMETAINDEX;
#define STDINDEXSIZE 0x4000
#define NUMINDEX(wLongsPerEntry) ((STDINDEXSIZE-32)/4/(wLongsPerEntry))
#define NUMINDEXFILL(wLongsPerEntry) ((STDINDEXSIZE/4) - NUMINDEX(wLongsPerEntry))
// structure of a super index (INDEX_OF_INDEXES)
//
#define ckidAVISUPERINDEX FCC('indx')
typedef struct _avisuperindex {
FOURCC fcc; // 'indx'
UINT cb; // size of this structure
WORD wLongsPerEntry; // ==4
BYTE bIndexSubType; // ==0 (frame index) or AVI_INDEX_SUB_2FIELD
BYTE bIndexType; // ==AVI_INDEX_OF_INDEXES
DWORD nEntriesInUse; // offset of next unused entry in aIndex
DWORD dwChunkId; // chunk ID of chunks being indexed, (i.e. RGB8)
DWORD dwReserved[3]; // must be 0
struct _avisuperindex_entry {
DWORDLONG qwOffset; // 64 bit offset to sub index chunk
DWORD dwSize; // 32 bit size of sub index chunk
DWORD dwDuration; // time span of subindex chunk (in stream ticks)
} aIndex[NUMINDEX(4)];
} AVISUPERINDEX;
#define Valid_SUPERINDEX(pi) (*(DWORD *)(&((pi)->wLongsPerEntry)) == (4 | (AVI_INDEX_OF_INDEXES << 24)))
// struct of a standard index (AVI_INDEX_OF_CHUNKS)
//
typedef struct _avistdindex_entry {
DWORD dwOffset; // 32 bit offset to data (points to data, not riff header)
DWORD dwSize; // 31 bit size of data (does not include size of riff header), bit 31 is deltaframe bit
} AVISTDINDEX_ENTRY;
#define AVISTDINDEX_DELTAFRAME ( 0x80000000) // Delta frames have the high bit set
#define AVISTDINDEX_SIZEMASK (~0x80000000)
typedef struct _avistdindex {
FOURCC fcc; // 'indx' or '##ix'
UINT cb; // size of this structure
WORD wLongsPerEntry; // ==2
BYTE bIndexSubType; // ==0
BYTE bIndexType; // ==AVI_INDEX_OF_CHUNKS
DWORD nEntriesInUse; // offset of next unused entry in aIndex
DWORD dwChunkId; // chunk ID of chunks being indexed, (i.e. RGB8)
DWORDLONG qwBaseOffset; // base offset that all index intries are relative to
DWORD dwReserved_3; // must be 0
AVISTDINDEX_ENTRY aIndex[NUMINDEX(2)];
} AVISTDINDEX;
// struct of a time variant standard index (AVI_INDEX_OF_TIMED_CHUNKS)
//
typedef struct _avitimedindex_entry {
DWORD dwOffset; // 32 bit offset to data (points to data, not riff header)
DWORD dwSize; // 31 bit size of data (does not include size of riff header) (high bit is deltaframe bit)
DWORD dwDuration; // how much time the chunk should be played (in stream ticks)
} AVITIMEDINDEX_ENTRY;
typedef struct _avitimedindex {
FOURCC fcc; // 'indx' or '##ix'
UINT cb; // size of this structure
WORD wLongsPerEntry; // ==3
BYTE bIndexSubType; // ==0
BYTE bIndexType; // ==AVI_INDEX_OF_TIMED_CHUNKS
DWORD nEntriesInUse; // offset of next unused entry in aIndex
DWORD dwChunkId; // chunk ID of chunks being indexed, (i.e. RGB8)
DWORDLONG qwBaseOffset; // base offset that all index intries are relative to
DWORD dwReserved_3; // must be 0
AVITIMEDINDEX_ENTRY aIndex[NUMINDEX(3)];
DWORD adwTrailingFill[NUMINDEXFILL(3)]; // to align struct to correct size
} AVITIMEDINDEX;
// structure of a timecode stream
//
typedef struct _avitimecodeindex {
FOURCC fcc; // 'indx' or '##ix'
UINT cb; // size of this structure
WORD wLongsPerEntry; // ==4
BYTE bIndexSubType; // ==0
BYTE bIndexType; // ==AVI_INDEX_IS_DATA
DWORD nEntriesInUse; // offset of next unused entry in aIndex
DWORD dwChunkId; // 'time'
DWORD dwReserved[3]; // must be 0
TIMECODEDATA aIndex[NUMINDEX(sizeof(TIMECODEDATA)/sizeof(LONG))];
} AVITIMECODEINDEX;
// structure of a timecode discontinuity list (when wLongsPerEntry == 7)
//
typedef struct _avitcdlindex_entry {
DWORD dwTick; // stream tick time that maps to this timecode value
TIMECODE time;
DWORD dwSMPTEflags;
DWORD dwUser;
TCHAR szReelId[12];
} AVITCDLINDEX_ENTRY;
typedef struct _avitcdlindex {
FOURCC fcc; // 'indx' or '##ix'
UINT cb; // size of this structure
WORD wLongsPerEntry; // ==7 (must be 4 or more all 'tcdl' indexes
BYTE bIndexSubType; // ==0
BYTE bIndexType; // ==AVI_INDEX_IS_DATA
DWORD nEntriesInUse; // offset of next unused entry in aIndex
DWORD dwChunkId; // 'tcdl'
DWORD dwReserved[3]; // must be 0
AVITCDLINDEX_ENTRY aIndex[NUMINDEX(7)];
DWORD adwTrailingFill[NUMINDEXFILL(7)]; // to align struct to correct size
} AVITCDLINDEX;
typedef struct _avifieldindex_chunk {
FOURCC fcc; // 'ix##'
DWORD cb; // size of this structure
WORD wLongsPerEntry; // must be 3 (size of each entry in
// aIndex array)
BYTE bIndexSubType; // AVI_INDEX_2FIELD
BYTE bIndexType; // AVI_INDEX_OF_CHUNKS
DWORD nEntriesInUse; //
DWORD dwChunkId; // '##dc' or '##db'
DWORDLONG qwBaseOffset; // offsets in aIndex array are relative to this
DWORD dwReserved3; // must be 0
struct _avifieldindex_entry {
DWORD dwOffset;
DWORD dwSize; // size of all fields
// (bit 31 set for NON-keyframes)
DWORD dwOffsetField2; // offset to second field
} aIndex[ ];
} AVIFIELDINDEX, * PAVIFIELDINDEX;
#include <poppack.h>
#endif
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,595 @@
#----------------------------------------------------------------------------
#
# Description:
# Make File Header for BackOffice Software Development Kit
#
# Copyright:
# Copyright 1986 - 1998 Microsoft Corporation. All Rights Reserved.
#
#----------------------------------------------------------------------------
!ifndef BASEMAKE_INCLUDED # Prevent multiple inclusions
BASEMAKE_INCLUDED = 1
#*********************************************
#
# Parameter Checking and Defaults
#
#*********************************************
!ifndef Proj
! ERROR Component name (Proj) has not been defined.
!endif
!ifndef INCLUDE
! ERROR INCLUDE variable is empty; must include at least system include directory
!endif
!ifndef LIB
! ERROR LIB variable is empty; must include at least system lib directory
!endif
!if defined(clean)
$(Proj): Clean
!else
$(Proj): All
!endif
!if defined(nodebug)
BLDTYPE=Retail
!endif
!if "$(BLDTYPE)" == "Retail" | "$(BLDTYPE)" == "RETAIL" | "$(BLDTYPE)" == "retail" | "$(BLDTYPE)" == "RTL" | "$(BLDTYPE)" == "rtl"
BLDTYPE1=Retail
!else if "$(BLDTYPE)" == "Profile" | "$(BLDTYPE)" == "PROFILE" | "$(BLDTYPE)" == "profile"
BLDTYPE1=Profile
!else if "$(BLDTYPE)" == "Debug" | "$(BLDTYPE)" == "DEBUG" | "$(BLDTYPE)" == "debug" | "$(BLDTYPE)" == "DBG" | "$(BLDTYPE)" == "dbg"
BLDTYPE1=Debug
!else ifndef BLDTYPE
BLDTYPE1=Debug
!else
! ERROR BLDTYPE must be either Retail, Profile or Debug.
!endif
!if "$(BLDTYPE1)" == "Retail"
nodebug=1
!endif
!ifndef PLATFORM
PLATFORM=Win32
!endif
!ifndef CALL
CALL=C
!endif
!ifndef PACK
PACK=YES
!endif
!ifndef LOG
LOG=YES
!endif
!ifndef WARNING_LEVEL
WARNING_LEVEL=3
!endif
!ifndef CPU
!ifndef PROCESSOR_ARCHITECTURE
!ERROR CPU and PROCESSOR_ARCHITECTURE variables are empty; at least one must be defined
!endif
CPU=$(PROCESSOR_ARCHITECTURE)
!if "$(CPU)"=="x86" | "$(CPU)"=="X86"
CPU = i386
!endif
!endif
!ifndef APPVER
APPVER=4.0
!endif
!ifndef USE_EXCHANGE
!include <win32.mak>
!endif
# Save build args for any recursive nmakes
BLDARGS= BLDTYPE=$(BLDTYPE) PLATFORM=$(PLATFORM) LOG=$(LOG) CPU=$(CPU)
#*********************************************
#
# Paths
#
#*********************************************
!ifndef BKOFFICE
!ifdef PROJROOT
BKOFFICE=$(PROJROOT)\ # must add trailing backslash
!else
BKOFFICE=\BkOffice\ # assume a reasonable default
!endif
!endif
!ifdef MAKEDIRS
MkDest=
!include $(MAKEDIRS)
!else
ResDir=.
ObjDir=.\$(PLATFORM)\$(BLDTYPE1)
IncDir=$(BKOFFICE)Include
LibDir=$(BKOFFICE)Lib
INCLUDE=$(ObjDir);$(IncDir);$(INCLUDE);
LIB=$(LibDir);$(LIB);
# Win95 doesn't support "&" on command line
MkDest=@for %d in ($(PLATFORM) $(ObjDir)) do @$(COMSPEC) /c if not exist %d md %d
!endif
#*********************************************
#
# Tools
#
#*********************************************
MAKEEXE = nmake
IMPLIB = lib
CC = cl
LIBU = lib
LINK = link
RC = rc
MC = mc
HC = start /wait hcrtf
#*********************************************
#
# Flags
#
#*********************************************
# CL is for all C and C++ files
# -WX Warnings as errors
# -J char becomes unsigned char
#
CL=$(cflags) -c -W$(WARNING_LEVEL) -J -Fo$@ /nologo $(CL)
# LFLAGS is for all links
LFLAGS=-NOLOGO -NODEFAULTLIB -machine:$(CPU) -out:$@ -INCREMENTAL:NO -PDB:NONE $(LFLAGS)
# DLLFLAGS is for linking DLLs
DLLFLAGS=-DLL -map:$(ObjDir)\$(@B).map $(DLLFLAGS)
# LIBFLAGS is for making libraries
LIBFLAGS=-NOLOGO -MACHINE:$(CPU) -out:$@ $(LIBFLAGS)
# RFLAGS is for Windows resources
RFLAGS= -I$(ResDir) -fo$@ -DWIN32 $(noansi) -r -D_WIN32 $(RFLAGS)
# MFLAGS is for the message compiler
MFLAGS=-v -c -s -h $(ObjDir) -r $(ObjDir) -x $(ObjDir) $(MFLAGS)
# MRFLAGS is for the resource compiler when used after the message compiler
MRFLAGS=-l 409 -r -x -i$(ObjDir) $(MRFLAGS)
# HFLAGS is for the help compiler
HFLAGS=-xn
#---------------------------------------------
# Calling convention Flag
#---------------------------------------------
!if "$(CALL)"=="PASCAL"
CL=-Gc $(CL)
!endif
#---------------------------------------------
# Function Packaging Flag
#---------------------------------------------
!if "$(PACK)" == "YES"
CL=-Gy $(CL)
cDefines=-Gy $(cDefines)
!endif
#---------------------------------------------
# Output Redirection
#---------------------------------------------
!if "$(LOG)" == "NO"
LogCmd=
!else
LogCmd= >> $(ObjDir)\$(Proj).Out
!endif
#---------------------------------------------
# Optimization Flags
#---------------------------------------------
!if "$(BLDTYPE1)" == "Retail"
CL=-O2 $(CL)
!else if "$(BLDTYPE1)" == "Profile"
CL=-Od -Z7 -Gh $(CL)
!else
CL=-Od -Z7 $(CL)
!endif
#---------------------------------------------
# PLATFORM specific Flags
#---------------------------------------------
!if "$(CPU)" == "I386"
CL = $(CL) -D_X86_=1
scall = -Gz
lflags = $(lflags) -align:0x1000
!endif
!if "$(CPU)" == "MIPS"
CL = $(CL) -D_MIPS_=1
scall =
!endif
!if "$(CPU)" == "PPC"
CL = $(CL) -D_PPC_=1
scall =
lflags = $(lflags) -ignore:4078
!endif
!if "$(CPU)" == "ALPHA"
CL = $(CL) -D_ALPHA_=1
scall =
!endif
#---------------------------------------------
# Windows version
#---------------------------------------------
!if "$(APPVER)" == "4.0"
CL = $(CL) -DWINVER=0x0400
rflags=$(rflags) -DWINVER=0x0400
!endif
#---------------------------------------------
# Additional MFC Flags
#---------------------------------------------
# Note: we are only using MFC for Exchange Admin
# extension dlls, which must be statically linked to MFC.
!ifdef Use_MFC
CL= $(CL) /GX /DSTRICT /DWIN32 /D_WINDOWS /D_MBCS /D_WINDLL
CL= $(CL) /D_USRDLL -D_AFX_NO_BSTR_SUPPORT /D_AFXDLL
!if "$(BLDTYPE1)"=="Debug"
CL= $(CL) /D_DEBUG
!endif
!ifdef crtdll # Use DLL CRT? (which is multithreaded)
crtflags = -MD$(DbgLibFlag) $(crtflags)
!elseif defined(crtst) && !defined(crtflags) # use Single Threaded CRT?
crtflags = -ML$(DbgLibFlag) $(crtflags)
!elseif defined(crtmt) # use Multithreaded CRT?
crtflags = -MT$(DbgLibFlag) $(crtflags)
!else # default to crtdll
crtflags = -MD$(DbgLibFlag) $(crtflags)
!endif # ifdef crtdll/else crtst/crtmt/else
!endif
#---------------------------------------------
# Build Type Flags (Retail/Debug)
#---------------------------------------------
!if "$(BLDTYPE1)"=="Retail"
CL=-DSHIP $(CL)
LFLAGS = $(LFLAGS) -RELEASE
!else if "$(BLDTYPE1)"=="Profile"
CL=-DDEBUG -DTEST -DPROFILE $(CL)
LFLAGS = $(LFLAGS) -DEBUG:mapped,partial -DEBUGTYPE:coff -PROFILE
libs = $(libs) CAP.LIB
!else
CL=-DDEBUG -DTEST $(CL)
LFLAGS = $(LFLAGS) -debug:full -debugtype:cv
!endif
#---------------------------------------------
# Determine CRT Flags
#---------------------------------------------
!ifdef crtdll # Use DLL CRT? (which is multithreaded)
crtflags = -DWIN32 $(noansi) -D_WIN32 -D_MT -D_DLL
!elseif defined(crtst) && !defined(crtflags) # use Single Threaded CRT?
crtflags = -DWIN32 $(noansi) -D_WIN32
!elseif defined(crtmt) # use Multithreaded CRT?
crtflags = -DWIN32 $(noansi) -D_WIN32 -D_MT
!else # default to crtdll
crtflags = -DWIN32 $(noansi) -D_WIN32 -D_MT -D_DLL
!endif # ifdef crtdll/else crtst/crtmt/else
#---------------------------------------------
# Determine app type Flags (console, gui, or DLL)
#---------------------------------------------
!if defined(console) # console app
linkflags=$(linkflags) -subsystem:console -entry:mainCRTStartup
!elseif !defined(dll) # not a dll, default to gui app
linkflags=$(linkflags) -subsystem:windows -entry:WinMainCRTStartup
!endif # ifdef console/else
#*********************************************
#
# Libraries
#
#*********************************************
!if "$(BLDTYPE1)"=="Retail"
DbgLibFlag =
!else
DbgLibFlag = d
!endif
#---------------------------------------------
# Back Office SDK specific
#---------------------------------------------
!ifdef USE_SNA
libs=$(libs) fmistr32.lib ihvLink.lib snacli.lib wappc32.lib wcpic32.lib
libs=$(libs) wincsv32.lib winrui32.lib winsli32.lib
!endif # USE_SNA
!ifdef USE_SQL
libs=$(libs) ntwdbLib.lib
!endif # USE_SQL
!ifdef USE_ODS
libs=$(libs) opends60.lib
!endif # USE_ODS
!if defined(USE_MSM) || defined(USE_SMS)
libs=$(libs) smsapi.lib objectty.lib
!endif # USE_MSM || USE_SMS
!ifdef USE_NETMON
libs=$(libs) atalk.lib bhmon.lib bhsupp.lib browser.lib filter.lib friendly.lib
libs=$(libs) hexedit.lib llc.lib nal.lib ncp.lib netlogon.lib nmapi.lib
libs=$(libs) parser.lib ppp.lib slbs.lib toolbar.lib
!endif # USE_NETMON
!ifdef USE_EXCHANGE
! ifndef Building_ExchSDK
libs=ExchSDK$(DbgLibFlag).Lib $(libs)
! endif # Building_ExchSDK
libs=$(libs) Mapi32.Lib Uuid.Lib
!if "$(WARNING_LEVEL)" != "4"
CL= $(CL) -WX
!endif
DLLFLAGS = $(DLLFLAGS) -def:$(@B).def
!endif # USE_EXCHANGE
#---------------------------------------------
# Determine CRT Libraries
#---------------------------------------------
libc = libc$(DbgLibFlag).lib oldnames.lib
libcmt = libcmt$(DbgLibFlag).lib oldnames.lib
libcdll = msvcrt$(DbgLibFlag).lib oldnames.lib
!ifdef crtdll # Use DLL CRT?
libcrt=$(libcdll)
!elseif defined(crtst) && !defined(crtflags) # use Single Threaded CRT?
libcrt=$(libc)
!elseif defined(crtmt) # use Multithreaded CRT?
libcrt=$(libcmt)
!else # default to crtdll
libcrt=$(libcdll)
!endif # endif crtdll/else crtst/crtmt/else
#---------------------------------------------
# Determine app type libraries (console, gui, or DLL)
#---------------------------------------------
!ifdef dll # is this a DLL?
linklibs=$(libs) kernel32.lib advapi32.lib user32.lib gdi32.lib comctl32.lib comdlg32.lib ole32.lib winspool.lib version.lib
!elseif defined(console) # not a DLL, perhaps a console app
linklibs=$(libs) kernel32.lib advapi32.lib user32.lib ole32.lib version.lib
!else # default to gui app
linklibs=$(libs) kernel32.lib $(optlibs) advapi32.lib user32.lib gdi32.lib comdlg32.lib ole32.lib winspool.lib version.lib
!endif # ifdef dll/else console/else
LinkLibs = $(LibList) $(linklibs) $(libcrt)
!if "$(BLDTYPE1)" == "Profile"
LinkLibs = $(LinkLibs) cap.lib
!endif
#---------------------------------------------
# Additional MFC Libraries
#---------------------------------------------
# Note that linking order is important when using MFC!
!ifdef Use_MFC
linklibs = mfcs40$(DbgLibFlag).lib mfc40$(DbgLibFlag).lib $(linklibs)
!endif
#*********************************************
#
# Inference Rules
#
#*********************************************
.SUFFIXES:
.SUFFIXES: .c .cpp .obj .def .lib .dll .exe .mc .rc .res .exp .bin .hpj
# C Targets
.c{$(ObjDir)\}.obj:
$(MkDest)
!if "$(LOG)"=="YES"
@echo $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
!endif
$(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
# C++ Targets
.cpp{$(ObjDir)\}.obj:
$(MkDest)
!if "$(LOG)"=="YES"
@echo $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
!endif
$(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
# Resource Targets from .RC files
{$(ResDir)\}.rc{$(ObjDir)\}.res:
$(MkDest)
!if "$(LOG)"=="YES"
@echo $(RC) $(RFLAGS) $(ResDir)\$(@B).rc $(LogCmd)
!endif
$(RC) $(RFLAGS) $(ResDir)\$(@B).rc $(LogCmd)
# Resource Targets from .MC files
.mc{$(ObjDir)\}.res:
$(MkDest)
!if "$(LOG)"=="YES"
@echo $(MC) $(MFLAGS) $< $(LogCmd)
!endif
$(MC) $(MFLAGS) $< $(LogCmd)
!if "$(LOG)"=="YES"
@echo $(RC) $(MRFLAGS) -fo$@ $(ObjDir)\$(@B).rc $(LogCmd)
!endif
$(RC) $(MRFLAGS) -fo$@ $(ObjDir)\$(@B).rc $(LogCmd)
# Import Libraries
.def{$(ObjDir)\}.lib:
!if "$(LOG)"=="YES"
@echo $(IMPLIB) -NOLOGO -MACHINE:$(CPU) -DEF:$(@B).DEF -OUT:$@ $(LogCmd)
!endif
$(IMPLIB) -NOLOGO -MACHINE:$(CPU) -DEF:$(@B).DEF -OUT:$@ $(LogCmd)
xcopy $@ $(LibDir)\ $(LogCmd)
.def{$(ObjDir)\}.exp:
!if "$(LOG)"=="YES"
@echo $(IMPLIB) -NOLOGO -MACHINE:$(CPU) -DEF:$(@B).DEF -OUT:$(@R).Lib $(LogCmd)
!endif
$(IMPLIB) -NOLOGO -MACHINE:$(CPU) -DEF:$(@B).DEF -OUT:$(@R).Lib $(LogCmd)
# Static Libraries
{$(ObjDir)\}.obj{$(ObjDir)\}.lib:
!if "$(LOG)"=="YES"
@echo $(LIBU) $(LIBFLAGS) $** $(LogCmd)
!endif
$(LIBU) $(LIBFLAGS) $** $(LogCmd)
!if "$(LOG)"=="YES"
@echo xcopy $@ $(LibDir) $(LogCmd)
!endif
xcopy $@ $(LibDir)\ $(LogCmd)
# DLLs
{$(ObjDir)\}.obj{$(ObjDir)\}.dll:
@echo $** > $(ObjDir)\objfiles.lst
@echo $(LinkLibs) > $(ObjDir)\libfiles.lst
!if "$(LOG)"=="YES"
@echo $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
!endif
$(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
!if "$(LOG)"=="YES"
@echo xcopy $(@R).lib $(LibDir) $(LogCmd)
!endif
-xcopy $(@R).lib $(LibDir)\ $(LogCmd)
# BINs
{$(ObjDir)\}.obj{$(ObjDir)\}.bin:
@echo $(LinkLibs) > $(ObjDir)\libfiles.lst
!if "$(LOG)"=="YES"
@echo $(LINK) $(LFLAGS) $(linkflags) $** @$(ObjDir)\libfiles.lst $(LogCmd)
!endif
$(LINK) $(LFLAGS) $(linkflags) $** @$(ObjDir)\libfiles.lst $(LogCmd)
# EXEs
{$(ObjDir)\}.obj{$(ObjDir)\}.exe:
@echo $** > $(ObjDir)\objfiles.lst
@echo $(LinkLibs) > $(ObjDir)\libfiles.lst
!if "$(LOG)"=="YES"
@echo $(LINK) $(LFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
!endif
$(LINK) $(LFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
# Helpfiles
.hpj{$(ObjDir)\}.hlp:
$(MkDest)
!if "$(LOG)"=="YES"
@echo $(HC) $(HFLAGS) $(@B).Hpj
!endif
$(HC) $(HFLAGS) $(@B).Hpj
!if "$(LOG)"=="YES"
@echo xcopy $(@F) $(ObjDir)
!endif
-xcopy $(@F) $(ObjDir) $(LogCmd)
#*********************************************
#
# Make Targets
#
#*********************************************
#---------------------------------------------
# List Output Files
#---------------------------------------------
ListDir:
dir $(ObjDir)
#---------------------------------------------
# Display Output Listing File
#---------------------------------------------
!ifndef ERRVIEW
ERRVIEW=start notepad.exe
!endif
ListOut:
$(ERRVIEW) $(ObjDir)\$(Proj).out
#---------------------------------------------
# Delete Output Listing File
#---------------------------------------------
DelOut:
del $(ObjDir)\$(Proj).out
#---------------------------------------------
# Clean Output Directories
#---------------------------------------------
clean:
$(MkDest)
!if "$(OS)" == "Windows_NT"
del /q $(ObjDir)\*.obj \
$(ObjDir)\*.out \
$(ObjDir)\*.h \
$(ObjDir)\*.dbg \
$(ObjDir)\*.lib \
$(ObjDir)\*.exe \
$(ObjDir)\*.dll \
$(ObjDir)\*.map \
$(ObjDir)\*.res \
$(ObjDir)\*.rc \
$(ObjDir)\*.bin \
$(ObjDir)\*.lst \
$(ObjDir)\*.blt \
$(ObjDir)\*.hlp \
$(ObjDir)\*.srl \
$(ObjDir)\*.exp >NUL 2>NUL
!else # Win95 doesn't support "2>" on command line, multiple files on a Del command, or /q
erase $(ObjDir)\*.obj >NUL
erase $(ObjDir)\*.out >NUL
erase $(ObjDir)\*.h >NUL
erase $(ObjDir)\*.dbg >NUL
erase $(ObjDir)\*.lib >NUL
erase $(ObjDir)\*.exe >NUL
erase $(ObjDir)\*.dll >NUL
erase $(ObjDir)\*.map >NUL
erase $(ObjDir)\*.res >NUL
erase $(ObjDir)\*.rc >NUL
erase $(ObjDir)\*.bin >NUL
erase $(ObjDir)\*.lst >NUL
erase $(ObjDir)\*.blt >NUL
erase $(ObjDir)\*.hlp >NUL
erase $(ObjDir)\*.srl >NUL
erase $(ObjDir)\*.exp >NUL
!endif # OS == Windows_NT
!endif # BASEMAKE_INCLUDED
@@ -0,0 +1,173 @@
/*++
Copyright (c) 1997-1998 Microsoft Corporation
Module Name:
basetsd.h
Abstract:
Type definitions for the basic sized types.
Author:
Jeff Havens (jhavens) 23-Oct-1997
Revision History:
--*/
#ifndef _BASETSD_H_
#define _BASETSD_H_
#ifdef __cplusplus
extern "C" {
#endif
//
// The following types are guaranteed to be signed and 32 bits wide.
//
typedef int LONG32, *PLONG32;
typedef int INT32, *PINT32;
//
// The following types are guaranteed to be unsigned and 32 bits wide.
//
typedef unsigned int ULONG32, *PULONG32;
typedef unsigned int DWORD32, *PDWORD32;
typedef unsigned int UINT32, *PUINT32;
//
// The INT_PTR is guaranteed to be the same size as a pointer. Its
// size with change with pointer size (32/64). It should be used
// anywhere that a pointer is cast to an integer type. UINT_PTR is
// the unsigned variation.
//
// HALF_PTR is half the size of a pointer it intended for use with
// within strcuture which contain a pointer and two small fields.
// UHALF_PTR is the unsigned variation.
//
#ifdef _WIN64
typedef __int64 INT_PTR, *PINT_PTR;
typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
#define MAXINT_PTR (0x7fffffffffffffffI64)
#define MININT_PTR (0x8000000000000000I64)
#define MAXUINT_PTR (0xffffffffffffffffUI64)
typedef unsigned int UHALF_PTR, *PUHALF_PTR;
typedef int HALF_PTR, *PHALF_PTR;
#define MAXUHALF_PTR (0xffffffffUL)
#define MAXHALF_PTR (0x7fffffffL)
#define MINHALF_PTR (0x80000000L)
#pragma warning(disable:4311) // type cast truncation
#if !defined(__midl)
__inline
unsigned long
HandleToUlong(
void *h
)
{
return((unsigned long) h );
}
__inline
unsigned long
PtrToUlong(
void *p
)
{
return((unsigned long) p );
}
__inline
unsigned short
PtrToUshort(
void *p
)
{
return((unsigned short) p );
}
__inline
long
PtrToLong(
void *p
)
{
return((long) p );
}
__inline
short
PtrToShort(
void *p
)
{
return((short) p );
}
#endif
#pragma warning(3:4311) // type cast truncation
#else
typedef long INT_PTR, *PINT_PTR;
typedef unsigned long UINT_PTR, *PUINT_PTR;
#define MAXINT_PTR (0x7fffffffL)
#define MININT_PTR (0x80000000L)
#define MAXUINT_PTR (0xffffffffUL)
typedef unsigned short UHALF_PTR, *PUHALF_PTR;
typedef short HALF_PTR, *PHALF_PTR;
#define MAXUHALF_PTR 0xffff
#define MAXHALF_PTR 0x7fff
#define MINHALF_PTR 0x8000
#define HandleToUlong( h ) ((ULONG) (h) )
#define PtrToUlong( p ) ((ULONG) (p) )
#define PtrToLong( p ) ((LONG) (p) )
#define PtrToUshort( p ) ((unsigned short) (p) )
#define PtrToShort( p ) ((short) (p) )
#endif
//
// SIZE_T used for counts or ranges which need to span the range of
// of a pointer. SSIZE_T is the signed variation.
//
typedef UINT_PTR SIZE_T, *PSIZE_T;
typedef INT_PTR SSIZE_T, *PSSIZE_T;
//
// The following types are guaranteed to be signed and 64 bits wide.
//
typedef __int64 LONG64, *PLONG64;
typedef __int64 INT64, *PINT64;
//
// The following types are guaranteed to be unsigned and 64 bits wide.
//
typedef unsigned __int64 ULONG64, *PULONG64;
typedef unsigned __int64 DWORD64, *PDWORD64;
typedef unsigned __int64 UINT64, *PUINT64;
#ifdef __cplusplus
}
#endif
#endif // _BASETSD_H_
@@ -0,0 +1,240 @@
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992-1997.
//
// File: basetyps.h
//
//----------------------------------------------------------------------------
#if !defined( _BASETYPS_H_ )
#define _BASETYPS_H_
// Common macros gleamed from COMPOBJ.H
#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C extern
#endif
#ifdef _WIN32
// Win32 doesn't support __export
#define STDMETHODCALLTYPE __stdcall
#define STDMETHODVCALLTYPE __cdecl
#define STDAPICALLTYPE __stdcall
#define STDAPIVCALLTYPE __cdecl
#else
#define STDMETHODCALLTYPE __export __stdcall
#define STDMETHODVCALLTYPE __export __cdecl
#define STDAPICALLTYPE __export __stdcall
#define STDAPIVCALLTYPE __export __cdecl
#endif
#define STDAPI EXTERN_C HRESULT STDAPICALLTYPE
#define STDAPI_(type) EXTERN_C type STDAPICALLTYPE
#define STDMETHODIMP HRESULT STDMETHODCALLTYPE
#define STDMETHODIMP_(type) type STDMETHODCALLTYPE
// The 'V' versions allow Variable Argument lists.
#define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE
#define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE
#define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE
#define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE
/****** Interface Declaration ***********************************************/
/*
* These are macros for declaring interfaces. They exist so that
* a single definition of the interface is simulataneously a proper
* declaration of the interface structures (C++ abstract classes)
* for both C and C++.
*
* DECLARE_INTERFACE(iface) is used to declare an interface that does
* not derive from a base interface.
* DECLARE_INTERFACE_(iface, baseiface) is used to declare an interface
* that does derive from a base interface.
*
* By default if the source file has a .c extension the C version of
* the interface declaratations will be expanded; if it has a .cpp
* extension the C++ version will be expanded. if you want to force
* the C version expansion even though the source file has a .cpp
* extension, then define the macro "CINTERFACE".
* eg. cl -DCINTERFACE file.cpp
*
* Example Interface declaration:
*
* #undef INTERFACE
* #define INTERFACE IClassFactory
*
* DECLARE_INTERFACE_(IClassFactory, IUnknown)
* {
* // *** IUnknown methods ***
* STDMETHOD(QueryInterface) (THIS_
* REFIID riid,
* LPVOID FAR* ppvObj) PURE;
* STDMETHOD_(ULONG,AddRef) (THIS) PURE;
* STDMETHOD_(ULONG,Release) (THIS) PURE;
*
* // *** IClassFactory methods ***
* STDMETHOD(CreateInstance) (THIS_
* LPUNKNOWN pUnkOuter,
* REFIID riid,
* LPVOID FAR* ppvObject) PURE;
* };
*
* Example C++ expansion:
*
* struct FAR IClassFactory : public IUnknown
* {
* virtual HRESULT STDMETHODCALLTYPE QueryInterface(
* IID FAR& riid,
* LPVOID FAR* ppvObj) = 0;
* virtual HRESULT STDMETHODCALLTYPE AddRef(void) = 0;
* virtual HRESULT STDMETHODCALLTYPE Release(void) = 0;
* virtual HRESULT STDMETHODCALLTYPE CreateInstance(
* LPUNKNOWN pUnkOuter,
* IID FAR& riid,
* LPVOID FAR* ppvObject) = 0;
* };
*
* NOTE: Our documentation says '#define interface class' but we use
* 'struct' instead of 'class' to keep a lot of 'public:' lines
* out of the interfaces. The 'FAR' forces the 'this' pointers to
* be far, which is what we need.
*
* Example C expansion:
*
* typedef struct IClassFactory
* {
* const struct IClassFactoryVtbl FAR* lpVtbl;
* } IClassFactory;
*
* typedef struct IClassFactoryVtbl IClassFactoryVtbl;
*
* struct IClassFactoryVtbl
* {
* HRESULT (STDMETHODCALLTYPE * QueryInterface) (
* IClassFactory FAR* This,
* IID FAR* riid,
* LPVOID FAR* ppvObj) ;
* HRESULT (STDMETHODCALLTYPE * AddRef) (IClassFactory FAR* This) ;
* HRESULT (STDMETHODCALLTYPE * Release) (IClassFactory FAR* This) ;
* HRESULT (STDMETHODCALLTYPE * CreateInstance) (
* IClassFactory FAR* This,
* LPUNKNOWN pUnkOuter,
* IID FAR* riid,
* LPVOID FAR* ppvObject);
* HRESULT (STDMETHODCALLTYPE * LockServer) (
* IClassFactory FAR* This,
* BOOL fLock);
* };
*/
#if defined(__cplusplus) && !defined(CINTERFACE)
//#define interface struct FAR
#define interface struct
#define STDMETHOD(method) virtual HRESULT STDMETHODCALLTYPE method
#define STDMETHOD_(type,method) virtual type STDMETHODCALLTYPE method
#define PURE = 0
#define THIS_
#define THIS void
#define DECLARE_INTERFACE(iface) interface iface
#define DECLARE_INTERFACE_(iface, baseiface) interface iface : public baseiface
#else
#define interface struct
#define STDMETHOD(method) HRESULT (STDMETHODCALLTYPE * method)
#define STDMETHOD_(type,method) type (STDMETHODCALLTYPE * method)
#define PURE
#define THIS_ INTERFACE FAR* This,
#define THIS INTERFACE FAR* This
#ifdef CONST_VTABLE
#define DECLARE_INTERFACE(iface) typedef interface iface { \
const struct iface##Vtbl FAR* lpVtbl; \
} iface; \
typedef const struct iface##Vtbl iface##Vtbl; \
const struct iface##Vtbl
#else
#define DECLARE_INTERFACE(iface) typedef interface iface { \
struct iface##Vtbl FAR* lpVtbl; \
} iface; \
typedef struct iface##Vtbl iface##Vtbl; \
struct iface##Vtbl
#endif
#define DECLARE_INTERFACE_(iface, baseiface) DECLARE_INTERFACE(iface)
#endif
// macros to define byte pattern for a GUID.
// Example: DEFINE_GUID(GUID_XXX, a, b, c, ...);
//
// Each dll/exe must initialize the GUIDs once. This is done in one of
// two ways. If you are not using precompiled headers for the file(s) which
// initializes the GUIDs, define INITGUID before including compobj.h. This
// is how OLE builds the initialized versions of the GUIDs which are included
// in ole2.lib. The GUIDs in ole2.lib are all defined in the same text
// segment GUID_TEXT.
//
// The alternative (which some versions of the compiler don't handle properly;
// they wind up with the initialized GUIDs in a data, not a text segment),
// is to use a precompiled version of compobj.h and then include initguid.h
// after compobj.h followed by one or more of the guid defintion files.
#ifndef INITGUID
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
EXTERN_C const GUID FAR name
#else
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
EXTERN_C const GUID name \
= { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }
#endif // INITGUID
#define DEFINE_OLEGUID(name, l, w1, w2) \
DEFINE_GUID(name, l, w1, w2, 0xC0,0,0,0,0,0,0,0x46)
#ifndef _ERROR_STATUS_T_DEFINED
typedef unsigned long error_status_t;
#define _ERROR_STATUS_T_DEFINED
#endif
#ifndef _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
#define _WCHAR_T_DEFINED
#endif
#ifndef GUID_DEFINED
#define GUID_DEFINED
typedef struct _GUID
{
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8];
} GUID;
#endif /* GUID_DEFINED */
#endif
@@ -0,0 +1,446 @@
#ifndef __include_bdnapi_h
#define __include_bdnapi_h
#include <winsock2.h>
#include <time.h>
#ifndef MSBDNAPI
#define MSBDNAPI __declspec( dllimport )
#endif
#ifndef EXTERN_C
#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C
#endif
#endif
#ifndef BDN_TIME_UNBOUND
#define BDN_TIME_UNBOUND ((time_t)0)
#endif
#ifndef BDN_SLOT_NONE
#define BDN_SLOT_NONE 0xFFFFFFFFUL
#endif
// opaque handles
typedef struct BDN_SERVICE * HBDNSERVICE;
typedef struct BDN_CONN * HBDNCONN;
typedef struct BDN_RSVP {
DWORD Version;
DWORD Size;
DWORD ReservationID;
FLOWSPEC Flowspec;
time_t StartTime;
time_t EndTime;
// SOCKADDR rsvpAddr; // This is never actually used
} BDN_RSVP, * LPBDN_RSVP, MSBDNRSVP, *PMSBDNRSVP, *LPMSBDNRSVP;
#define BDN_RSVP_VERSION 0x0100
typedef struct tagBDN_HARDWARE_ADDR {
WORD Type;
LPVOID Address;
WORD AddressLength;
} BDN_HARDWARE_ADDR, * LPBDN_HARDWARE_ADDR;
#define BDN_HARDWARE_TYPE_IEEE8023 1
#define BDN_HARDWARE_TYPE_ATM 2
typedef struct BDN_VALUE {
WORD Type;
union {
SOCKET_ADDRESS SocketAddress;
struct {
union {
LPSTR AnsiString;
LPWSTR UnicodeString;
LPTSTR String;
};
DWORD StringMaxLength;
};
DWORD Dword;
};
} BDN_VALUE, * LPBDN_VALUE;
// BDN_VALUE.Type
#define BDN_VALUE_ANSI_STRING 1
#define BDN_VALUE_UNICODE_STRING 2
#define BDN_VALUE_DWORD 3
#define BDN_VALUE_SOCKADDR 4
#ifdef _UNICODE
#define BDN_VALUE_STRING BDN_VALUE_UNICODE_STRING
#else
#define BDN_VALUE_STRING BDN_VALUE_ANSI_STRING
#endif
// value identifiers used with BDN service
#define BDN_SERVICE_BRIDGE 1
#define BDN_SERVICE_ARS 2
#define BDN_SERVICE_BRS 3
#define BDN_SERVICE_GLOBAL_ADDR 4
#define BDN_SERVICE_LOCAL_ADDR 5
#define BDN_SERVICE_APPLICATION 6
#define BDN_SERVICE_CONTENT_SERVICE 7
EXTERN_C HRESULT WINAPI BdnLookupServiceA (LPCSTR, HBDNSERVICE *);
EXTERN_C HRESULT WINAPI BdnLookupServiceW (LPCWSTR, HBDNSERVICE *);
EXTERN_C HRESULT WINAPI BdnServiceCreate (HBDNSERVICE *);
EXTERN_C HRESULT WINAPI BdnServiceClose (HBDNSERVICE);
EXTERN_C HRESULT WINAPI BdnReserveAddress
( HBDNSERVICE,
time_t,
time_t,
DWORD,
DWORD,
const SOCKET_ADDRESS *
);
EXTERN_C HRESULT WINAPI BdnReleaseAddress
( HBDNSERVICE,
time_t,
const SOCKET_ADDRESS *
);
EXTERN_C HRESULT WINAPI BdnServiceSetValue
( HBDNSERVICE,
DWORD,
const BDN_VALUE *
);
EXTERN_C HRESULT WINAPI BdnServiceGetValue
( HBDNSERVICE,
DWORD,
BDN_VALUE *
);
EXTERN_C HRESULT WINAPI BdnServiceSetValueStringA
( HBDNSERVICE,
DWORD,
LPCSTR
);
EXTERN_C HRESULT WINAPI BdnServiceSetValueStringW
( HBDNSERVICE,
DWORD,
LPCWSTR
);
EXTERN_C HRESULT WINAPI BdnServiceGetValueStringA
( HBDNSERVICE,
DWORD,
LPSTR,
DWORD
);
EXTERN_C HRESULT WINAPI BdnServiceGetValueStringW
( HBDNSERVICE,
DWORD,
LPWSTR,
DWORD
);
EXTERN_C HRESULT WINAPI BdnCreateRegulatedMulticast
( HBDNSERVICE service,
LPBDN_RSVP reservation,
HBDNCONN * conn
);
EXTERN_C HRESULT WINAPI BdnCreateRegulatedMulticastRaw
( SOCKET sock,
LPBDN_RSVP reservation,
HBDNCONN * conn
);
EXTERN_C HRESULT WINAPI BdnOpenTunnel
( HBDNSERVICE service,
const SOCKET_ADDRESS * destination_address,
BYTE mttl,
DWORD reservation_id,
HBDNCONN * conn
);
EXTERN_C HRESULT WINAPI BdnReserveBandwidthA
( HBDNSERVICE service,
time_t start_time,
time_t end_time,
DWORD slot,
const FLOWSPEC * flowspec,
LPCSTR description,
DWORD * resv_id
);
EXTERN_C HRESULT WINAPI BdnReserveBandwidthW
( HBDNSERVICE service,
time_t start_time,
time_t end_time,
DWORD slot,
const FLOWSPEC * flowspec,
LPCWSTR description,
DWORD * resv_id
);
EXTERN_C HRESULT WINAPI BdnGetReservationA
( HBDNSERVICE service,
DWORD resv_id,
BDN_RSVP * resv,
LPSTR description,
DWORD description_len
);
EXTERN_C HRESULT WINAPI BdnGetReservationW
( HBDNSERVICE service,
DWORD resv_id,
BDN_RSVP * resv,
LPWSTR description,
DWORD description_len
);
EXTERN_C HRESULT WINAPI BdnLookupReservationA
( HBDNSERVICE hBdnService,
LPCSTR szDescription,
time_t StartTime,
time_t EndTime,
BDN_RSVP * lpReservation,
DWORD * lpReservationCount // in-out parameter
);
EXTERN_C HRESULT WINAPI BdnLookupReservationW
( HBDNSERVICE hBdnService,
LPCWSTR szDescription,
time_t StartTime,
time_t EndTime,
BDN_RSVP * lpReservation,
DWORD * lpReservationCount // in-out parameter
);
EXTERN_C HRESULT WINAPI BdnClearReservation
( HBDNSERVICE hBdnService,
DWORD dwReservationID
);
EXTERN_C INT WINAPI BdnSend
( HBDNCONN,
const void *,
WORD);
EXTERN_C INT WINAPI BdnSendTo (
HBDNCONN hBdnConn,
const SOCKET_ADDRESS * lpDestAddress,
WORD wDestPort,
const BDN_HARDWARE_ADDR * lpHardwareAddress,
const void * lpBuffer,
WORD nBufferLength
);
EXTERN_C INT WINAPI BdnSendRaw (
HBDNCONN hBdnConn,
WORD wProtocol,
const BDN_HARDWARE_ADDR * lpHardwareAddress,
const void * lpBuffer,
WORD nBufferLength
);
#ifdef _UNICODE
#define BdnGetReservation BdnGetReservationW
#define BdnLookupReservation BdnLookupReservationW
#define BdnLookupService BdnLookupServiceW
#define BdnServiceSetValueString BdnServiceSetValueStringW
#else
#define BdnGetReservation BdnGetReservationA
#define BdnLookupReservation BdnLookupReservationA
#define BdnLookupService BdnLookupServiceA
#define BdnServiceSetValueString BdnServiceSetValueStringA
#endif
// #define MSBDNEDENIED -1; // ???
// #define MSBDNEINVALID -2; // ???
EXTERN_C MSBDNAPI INT WINAPI msbdnReserveAddress(
LPCSADDR_INFO lpcsServerAddr,
time_t StartTime,
time_t EndTime,
WORD wFLags,
LPSOCKET_ADDRESS lpDestAddr
);
#define MSBDN_INET_EXISTING 0x0100 // The lpDestAddr is already filled with an existing value that the server should use for the reservation.
#define MSBDN_INET_GLOBAL 0x0001 // Reserve an internet-wide globally unique IP address for the duration is the reservation. TTL >= 127.
#define MSBDN_INET_NETWORK 0x0002 // Reserve a IP address that is unique to the organizations network. For DSS, this is equivalent to their entire Satellite.
#define MSBDN_INET_SUBNET 0x0003 // Reserve an address that is unique to a local subnet. For DSS, this is equivilent to a single channel or a group of channels, depending on how the network is configured.
EXTERN_C MSBDNAPI INT WINAPI msbdnRelinquishAddress(
LPCSADDR_INFO lpcsServerAddr,
time_t FromTime,
LPSOCKET_ADDRESS lpDestAddr
);
EXTERN_C MSBDNAPI INT WINAPI msbdnReserveBandwidth(
LPCSADDR_INFO lpcsServerAddr,
time_t StartTime,
time_t EndTime,
LPFLOWSPEC lpFlowSpec,
LPCTSTR lpszDescription,
DWORD *lpReservationID
);
EXTERN_C MSBDNAPI INT WINAPI msbdnGetReservation(
LPCSADDR_INFO lpcsServerAddr,
DWORD dwReservationID,
LPMSBDNRSVP lpReservation,
LPSTR lpszDescription,
DWORD dwDescriptionLength
);
EXTERN_C MSBDNAPI INT WINAPI msbdnLookupReservation(
LPCSADDR_INFO lpcsServerAddr,
LPCSTR szDescription,
time_t StartTime,
time_t EndTime,
LPMSBDNRSVP lpReservation,
DWORD *lpdwReservationCount
);
EXTERN_C MSBDNAPI INT WINAPI msbdnClearReservation(
LPCSADDR_INFO lpcsServerAddr,
DWORD dwReservationID
);
EXTERN_C MSBDNAPI INT WINAPI msbdnForwardMulticast(
LPCSADDR_INFO lpcsBridgeAddr,
LPSOCKET_ADDRESS lpDestAddr,
WORD wTTL,
DWORD dwReservationID
);
EXTERN_C MSBDNAPI INT WINAPI msbdnStopMulticast(
LPCSADDR_INFO lpcsBridgeAddr,
LPSOCKET_ADDRESS lpDestAddr
);
EXTERN_C MSBDNAPI HBDNCONN msbdnCreateRegulatedMulticast (
SOCKET hSocket,
LPMSBDNRSVP lpReservation
);
EXTERN_C MSBDNAPI HBDNCONN msbdnOpenTunnel (
LPCSADDR_INFO lpcsBridgeAddr,
LPSOCKET_ADDRESS lpDestAddr,
WORD wTTL,
DWORD dwReservationID
);
EXTERN_C MSBDNAPI INT WINAPI msbdnSend (
HBDNCONN hBdnConn,
LPVOID lpBuffer,
WORD nBytes
);
EXTERN_C MSBDNAPI INT WINAPI msbdnSendTo (
HBDNCONN hBdnCon,
LPSOCKET_ADDRESS lpDestAddress,
WORD wDestPort,
LPVOID lpHardwareAddress,
LPVOID lpBuffer,
WORD nBytes
);
EXTERN_C MSBDNAPI INT WINAPI msbdnSendRaw (
HBDNCONN hBdnCon,
WORD wProtocol,
LPVOID lpHardwareAddress,
LPVOID lpBuffer,
WORD nBytes
);
EXTERN_C MSBDNAPI INT WINAPI msbdnClose (
HBDNCONN hBdnCon
);
EXTERN_C MSBDNAPI INT WINAPI msbdnReserveAddressEx(
LPCSTR szServer,
time_t StartTime,
time_t EndTime,
WORD wFLags,
LPCSTR szDestAddr,
DWORD dwDestAddrLength
);
EXTERN_C MSBDNAPI INT WINAPI msbdnRelinquishAddressEx(
LPCSTR szServer,
time_t FromTime,
LPCSTR szDestAddr
);
EXTERN_C MSBDNAPI INT WINAPI msbdnReserveBandwidthEx(
LPCSTR szServer,
time_t StartTime,
time_t EndTime,
LPFLOWSPEC lpFlowSpec,
LPCTSTR lpszDescription,
DWORD *lpReservationID
);
EXTERN_C MSBDNAPI INT WINAPI msbdnGetReservationEx(
LPCSTR szServer,
DWORD dwReservationID,
LPMSBDNRSVP lpReservation,
LPSTR lpszDescription,
DWORD dwDescriptionLength
);
EXTERN_C MSBDNAPI INT WINAPI msbdnLookupReservationEx(
LPCSTR szServer,
LPCSTR szDescription,
time_t StartTime,
time_t EndTime,
LPMSBDNRSVP lpReservation,
DWORD *lpdwReservationCount
);
EXTERN_C MSBDNAPI INT WINAPI msbdnClearReservationEx(
LPCSTR szServer,
DWORD dwReservationID
);
EXTERN_C MSBDNAPI INT WINAPI msbdnForwardMulticastEx(
LPCSTR szBridge,
LPCSTR szDestAddr,
DWORD dwReservationID
);
EXTERN_C MSBDNAPI INT WINAPI msbdnStopMulticastEx(
LPCSTR szBridge,
LPCSTR szDestAddr
);
EXTERN_C MSBDNAPI HBDNCONN WINAPI msbdnOpenTunnelEx(
LPCSTR szBridge,
LPCSTR szDestAddr,
WORD wDestPort,
WORD wTTL,
DWORD dwReservationID
);
#endif // __include_bdnapi_h
+486
View File
@@ -0,0 +1,486 @@
//=============================================================================
// Microsoft (R) Bloodhound (tm). Copyright (C) 1991-1998.
//
// MODULE: bh.h
//
// This is the top-level include file for all Bloodhound components.
//=============================================================================
#if !defined(_BH_)
#define _BH_
#include "naltypes.h" //... Network types.
#include "bhsupp.h" //... Supplemental API's.
#include "nal.h" //... Network definitions.
#include "bhtypes.h" //... Type definitions for BH.
#include "bherr.h" //... Error code definitions for BH.
#include "bhfilter.h" //... Filter definitions.
#include "parser.h" //... Parser helper functions and structures.
#include "inilib.h"
#pragma pack(1)
//=============================================================================
// A frame with no number contains this value as its frame number.
//=============================================================================
#define INVALID_FRAME_NUMBER ((DWORD) -1)
//=============================================================================
// Capture file flags.
//=============================================================================
#define CAPTUREFILE_OPEN OPEN_EXISTING
#define CAPTUREFILE_CREATE CREATE_NEW
//=============================================================================
// TRANSMIT API's.
//=============================================================================
extern LPTRANSMITSTATS WINAPI TransmitFrame(HNETWORK hNetwork,
HFRAME hFrame,
DWORD Iterations,
DWORD TimeDelta,
LPDWORD TxCorrelator);
extern LPTRANSMITSTATS WINAPI TransmitCapture(HNETWORK hNetwork,
HCAPTURE hCapture,
DWORD StartingFrameNumber,
DWORD EndingFrameNumber,
DWORD Iterations,
DWORD IterationTimeDelta,
DWORD TimeDelta,
FILTERPROC FilterProc,
LPVOID FilterInstData,
LPDWORD TxCorrelator);
//=============================================================================
// CAPTURE CONTEXT API's.
//=============================================================================
extern DWORD WINAPI StationQuery(DWORD NetworkID,
LPADDRESS DestAddress,
LPQUERYTABLE QueryTable,
HPASSWORD hPassword);
extern HCAPTURE WINAPI CreateCapture(HWND hWnd,
HBUFFER hBuffer,
HPASSWORD hPassword);
extern DWORD WINAPI DestroyCapture(HCAPTURE hCapture);
extern LPVOID WINAPI GetCaptureInstanceData(HCAPTURE hCapture);
extern HADDRESSDB WINAPI GetCaptureAddressDB(HCAPTURE hCapture);
extern LPSYSTEMTIME WINAPI GetCaptureTimeStamp(HCAPTURE hCapture);
extern DWORD WINAPI GetCaptureTotalFrames(HCAPTURE hCapture);
extern HBUFFER WINAPI GetCaptureBuffer(HCAPTURE hCapture);
extern LPSTR WINAPI GetCaptureComment(HCAPTURE hCapture);
extern DWORD WINAPI LoadCapture(HCAPTURE hCapture, LPSTR FileName);
extern DWORD WINAPI SaveCapture(HCAPTURE hCapture,
LPSTR FileName,
LPSTR lpComment,
LPVOID UserData,
DWORD UserDataLength,
FILTERPROC FilterProc,
LPVOID FilterInstData,
DWORD nFirstFrame,
DWORD nLastFrame);
extern LPVOID WINAPI SetCaptureInstanceData(HCAPTURE hCapture, LPVOID InstData);
extern HADDRESSDB WINAPI SetCaptureAddressDB(HCAPTURE hCapture, HADDRESSDB);
//=============================================================================
// FRAME HELP API's.
//=============================================================================
extern BOOL WINAPI ConvertMacAddress(LPADDRESS Address, DWORD NewAddressType);
extern DWORD WINAPI MacTypeToAddressType(DWORD MacType);
extern DWORD WINAPI AddressTypeToMacType(DWORD AddressType);
extern DWORD WINAPI GetFrameDstAddressOffset(HFRAME hFrame, DWORD AddressType, LPDWORD AddressLength);
extern DWORD WINAPI GetFrameSrcAddressOffset(HFRAME hFrame, DWORD AddressType, LPDWORD AddressLength);
extern HCAPTURE WINAPI GetFrameCaptureHandle(HFRAME hFrame);
extern DWORD WINAPI GetFrameDestAddress(HFRAME hFrame,
LPADDRESS lpAddress,
DWORD AddressType,
DWORD Flags);
extern DWORD WINAPI GetFrameSourceAddress(HFRAME hFrame,
LPADDRESS lpAddress,
DWORD AddressType,
DWORD Flags);
extern DWORD WINAPI GetFrameMacHeaderLength(HFRAME hFrame);
extern BOOL WINAPI CompareFrameDestAddress(HFRAME hFrame, LPADDRESS lpAddress);
extern BOOL WINAPI CompareFrameSourceAddress(HFRAME hFrame, LPADDRESS lpAddress);
extern DWORD WINAPI GetFrameLength(HFRAME hFrame);
extern DWORD WINAPI GetFrameStoredLength(HFRAME hFrame);
extern DWORD WINAPI GetFrameMacType(HFRAME hFrame);
extern DWORD WINAPI GetFrameMacHeaderLength(HFRAME hFrame);
extern DWORD WINAPI GetFrameNumber(HFRAME hFrame);
extern LPBYTE WINAPI GetFrameRoutingInformation(HFRAME hFrame, LPDWORD lpRILength);
extern DWORD WINAPI GetFrameTimeStamp(HFRAME hFrame);
extern int WINAPI CompareRawAddresses(LPBYTE Address1, LPBYTE Address2, UINT AddressType);
//=============================================================================
// FRAME API's.
//=============================================================================
extern DWORD WINAPI InsertFrame(HCAPTURE hCapture, HFRAME hFrame, DWORD FrameNumber);
extern DWORD WINAPI DeleteFrame(HCAPTURE hCapture, DWORD FrameNumber);
extern HFRAME WINAPI ModifyFrame(HCAPTURE hCapture,
DWORD FrameNumber,
LPBYTE FrameData,
DWORD FrameLength,
DWORD TimeStamp);
extern HFRAME WINAPI CreateFrame(LPBYTE FrameData, DWORD FrameLength, DWORD TimeStamp);
extern DWORD WINAPI DestroyFrame(HFRAME hFrame);
extern HFRAME WINAPI FindNextFrame(HFRAME hCurrentFrame,
LPSTR ProtocolName,
LPADDRESS lpDesstAddress,
LPADDRESS lpSrcAddress,
LPWORD ProtocolOffset,
DWORD OriginalFrameNumber,
DWORD nHighestFrame);
extern HFRAME WINAPI FindPreviousFrame(HFRAME hCurrentFrame,
LPSTR ProtocolName,
LPADDRESS lpDstAddress,
LPADDRESS lpSrcAddress,
LPWORD ProtocolOffset,
DWORD OriginalFrameNumber,
DWORD nLowestFrame );
extern DWORD WINAPI FrameRecognize(HFRAME hFrame);
extern HCAPTURE WINAPI GetFrameCaptureHandle(HFRAME);
extern HFRAME WINAPI GetFrame(HCAPTURE hCapture, DWORD FrameNumber);
extern LPRECOGNIZEDATATABLE WINAPI GetFrameRecognizeData(HFRAME hFrame);
extern LPBYTE WINAPI LockFrame(HFRAME hFrame);
extern LPPROPERTYTABLE WINAPI LockFrameText(HFRAME hFrame);
extern LPPROPERTYTABLE WINAPI LockFramePropertyTable(HFRAME hFrame);
extern DWORD WINAPI UnlockFrame(HFRAME hFrame);
extern DWORD WINAPI UnlockFrameText(HFRAME hFrame);
extern DWORD WINAPI UnlockFramePropertyTable(HFRAME hFrame);
//=============================================================================
// AddFrame() is a special form of insert frame, it add the frame to
// the end of the current capture.
//=============================================================================
INLINE DWORD WINAPI AddFrame(HCAPTURE hCapture, HFRAME hFrame)
{
return InsertFrame(hCapture, hFrame, INVALID_FRAME_NUMBER);
}
#ifdef DEBUG
extern VOID WINAPI DebugShowLocks(HCAPTURE hCapture);
extern VOID WINAPI DebugGetFrameLocks(HFRAME hFrame, LPDWORD lpLocks, LPDWORD lpPropertyTableLocks);
extern BOOL WINAPI DebugIsRemote(HCAPTURE hCapture);
#endif
//=============================================================================
// Protocol API's.
//=============================================================================
extern HPROTOCOL WINAPI CreateProtocol(LPSTR ProtocolName,
LPENTRYPOINTS lpEntryPoints,
DWORD cbEntryPoints);
extern VOID WINAPI DestroyProtocol(HPROTOCOL hProtocol);
extern DWORD WINAPI DisableProtocol(HCAPTURE hCapture, HPROTOCOL hProtocol);
extern DWORD WINAPI EnableProtocol(HCAPTURE hCapture, HPROTOCOL hProtocol);
extern LPPROTOCOLTABLE WINAPI EnumProtocols(VOID);
extern LPPROTOCOLINFO WINAPI GetProtocolInfo(HPROTOCOL hProtocol);
extern LPSTR WINAPI GetProtocolDLLName(HPROTOCOL hProtocol);
extern HPROPERTY WINAPI GetProperty(HPROTOCOL hProtocol, LPSTR PropertyName);
extern HPROTOCOL WINAPI GetProtocolFromProperty(HPROPERTY hProperty);
extern HPROTOCOL WINAPI GetProtocolFromName(LPSTR ProtocolName);
extern DWORD WINAPI GetProtocolStartOffset(HFRAME hFrame, LPSTR ProtocolName);
extern DWORD WINAPI GetProtocolStartOffsetHandle(HFRAME hFrame, HPROTOCOL hProtocol);
extern LPPROTOCOLTABLE WINAPI GetEnabledProtocols(HCAPTURE hCapture);
extern HPROTOCOL WINAPI GetProtocolFromProtocolID(DWORD dwProtocolID);
extern VOID WINAPI SetMaxAmountOfProtocols(DWORD dwAmountOfProtocols);
extern DWORD WINAPI GetMaxAmountOfProtocols();
//=============================================================================
// Property API's.
//=============================================================================
extern DWORD WINAPI CreatePropertyDatabase(HPROTOCOL hProtocol, DWORD nProperties);
extern DWORD WINAPI DestroyPropertyDatabase(HPROTOCOL hProtocol);
extern HPROPERTY WINAPI AddProperty(HPROTOCOL hProtocol, LPPROPERTYINFO PropertyInfo);
extern LPPROPERTYINST WINAPI AttachPropertyInstance(HFRAME hFrame,
HPROPERTY hProperty,
DWORD Length,
ULPVOID lpData,
DWORD HelpID,
DWORD Level,
DWORD IFlags);
extern LPPROPERTYINST WINAPI AttachPropertyInstanceEx(HFRAME hFrame,
HPROPERTY hProperty,
DWORD Length,
ULPVOID lpData,
DWORD ExLength,
ULPVOID lpExData,
DWORD HelpID,
DWORD Level,
DWORD IFlags);
extern LPPROPERTYINST WINAPI FindPropertyInstance(HFRAME hFrame, HPROPERTY hProperty);
extern LPPROPERTYINFO WINAPI GetPropertyInfo(HPROPERTY hProperty);
extern LPSTR WINAPI GetPropertyText(HFRAME hFrame, LPPROPERTYINST lpPI, LPSTR szBuffer, DWORD BufferSize);
extern INT WINAPI QueryProtocolState(HCAPTURE hCapture, HPROTOCOL hProtocol);
//=============================================================================
// ADDRESS API's.
//=============================================================================
extern LPADDRESSINFO WINAPI AddAddress(HADDRESSDB hAddressDB,
LPADDRESS lpAddress,
LPSTR lpName,
LPVOID InstData);
extern HADDRESSDB WINAPI CreateAddressDatabase(VOID);
extern DWORD WINAPI DeleteAddress(HADDRESSDB hAddressDB, LPADDRESS lpAddressToDelete);
extern DWORD WINAPI DestroyAddressDatabase(HADDRESSDB hAddressDB);
extern DWORD WINAPI EmptyAddressDatabase(HADDRESSDB hAddressDB);
extern LPADDRESSINFO WINAPI GetAddressInfo(HADDRESSDB hAddressDB, LPADDRESS lpAddress);
extern LPADDRESSINFO WINAPI GetAddressInfoByName(HADDRESSDB hAddressDB, LPSTR lpName);
extern LPADDRESSINFOTABLE WINAPI EnumAddresses(HADDRESSDB hAddressDB, int SortByType);
extern LPVOID WINAPI GetAddressDatabaseInstanceData(HADDRESSDB hAddressDB);
extern LPVOID WINAPI SetAddressDatabaseInstanceData(HADDRESSDB hAddressDB, LPVOID InstData);
extern LPADDRESSINFO * WINAPI FindAddressInfoByAddress(LPADDRESSINFOTABLE lpAddressInfoTable, LPADDRESS lpAddress);
extern LPADDRESSINFO * WINAPI FindAddressInfoByName(LPADDRESSINFOTABLE lpAddressInfoTable, LPSTR lpName,
LPADDRESS lpSpecificAddress );
//=============================================================================
// MISC. API's.
//=============================================================================
extern LPSTR WINAPI GetSystemPath(LPSTR Path, DWORD Length);
extern DWORD WINAPI GetCaptureCommentFromFilename(LPSTR lpFilename, LPSTR lpComment, DWORD BufferSize);
extern int WINAPI CompareAddresses(LPADDRESS lpAddress1, LPADDRESS lpAddress2);
extern DWORD WINAPIV FormatPropertyInstance(LPPROPERTYINST lpPropertyInst, ...);
extern SYSTEMTIME * WINAPI AdjustSystemTime(SYSTEMTIME *SystemTime, DWORD TimeDelta);
//=============================================================================
// MISC. API's.
//=============================================================================
extern VOID WINAPI eprintf(LPSTR format, ...);
extern VOID WINAPI CreateErrorLogEntry(VOID);
extern DWORD WINAPI BHGetLastError(VOID);
extern DWORD WINAPI BHSetLastError(DWORD Error);
extern DWORD WINAPI ResetPropertyInstanceLength( LPPROPERTYINST lpProp,
WORD nOrgLen,
WORD nNewLen );
//=============================================================================
// DEBUG API's.
//=============================================================================
#ifdef DEBUG
//=============================================================================
// BreakPoint() macro.
//=============================================================================
#ifdef _X86_
#define BreakPoint() _asm { int 3h }
#else
#define BreakPoint() DebugBreak()
#endif
//=============================================================================
// FUNCTION: BhAssert()
//=============================================================================
INLINE VOID BhAssert(
LPVOID assert,
LPSTR file,
UINT line,
LPVOID msg
)
{
if ( msg == NULL )
{
dprintf("ASSERT -- %s occured on line %u of file %s.\n",
assert,
line,
file);
}
else
{
dprintf("ASSERT -- %s occured on line %u of file %s: Message = %s.\n",
assert,
line,
file,
msg);
}
}
//=============================================================================
// MACRO: ASSERT()
//=============================================================================
#define ASSERT(exp) \
{ \
if ( !(exp) ) \
{ \
BhAssert(#exp, __FILE__, __LINE__, NULL); \
BreakPoint(); \
} \
} \
#define ASSERTMSG(exp, msg) \
{ \
if ( !(exp) ) \
{ \
BhAssert(#exp, __FILE__, __LINE__, msg); \
BreakPoint(); \
} \
} \
#else //... DEBUG
#define ASSERT(exp)
#define ASSERTMSG(exp, msg)
#define ASSERT_DWORD_ALIGNMENT(p) (p)
#endif //... DEBUG
//=============================================================================
// PanicPoint().
//=============================================================================
extern VOID WINAPI PanicMessage(UINT line, LPSTR file, LPSTR msg);
#ifdef DEBUG
#define PanicPoint() \
{ \
PanicMessage(__LINE__, __FILE__, NULL); \
BreakPoint(); \
}
#else
#define PanicPoint() \
{ \
PanicMessage(__LINE__, __FILE__, NULL); \
}
#endif
//=============================================================================
// Alignment macro.
//=============================================================================
#ifndef _X86_
#ifdef DEBUG
INLINE LPVOID WINAPI ASSERT_DWORD_ALIGNMENT(LPVOID p)
{
if ( (((DWORD) (p)) & 0x00000003) != 0 )
{
dprintf("Fatal error on line %u of %s. Pointer is not DWORD aligned.", __LINE__, __FILE__);
BreakPoint();
}
return p;
}
#endif
#else
#define ASSERT_DWORD_ALIGNMENT(p) (p)
#endif
#pragma pack()
#endif
+410
View File
@@ -0,0 +1,410 @@
#==============================================================================
# Microsoft (R) Bloodhound (tm).
#
# MODULE: bh.mak
#
# Modification History
#
# raypa 11/17/92 Created for Win32.
# Tom MCConnell 02/04/93 Made it based on ntwin32.mak for portibility
# raypa 02/12/93 Added BHDLL_LIBS macro.
# Tom Laird-McConnell 11/15/93 Changed to use subsystem:native
# Tom Laird-McConnell 11/17/93 Added Splitsym stuff
# raypa 12/06/93 Partially rewrote for MIPS and ALPHA.
# raypa 12/06/93 No longer include WIN32.MAK.
# Tom Laird-McConnell 07/25/94 Rewrote to base it on ntwin32.mak for portibility
#==============================================================================
!include <ntwin32.mak>
#==============================================================================
# This section verifies Bloodhound Build environment variables
#==============================================================================
!IFNDEF BH_ROOT
!ERROR BH_ROOT must be set to the root of the Bloodhound tree
!ENDIF
!IFNDEF BASEDIR
!ERROR BASEDIR must be set to the root of the DDK tree
!ENDIF
!IFNDEF CPU
!ERROR CPU must be set to a valid cpu (such as i386, MIPS, ALPHA)
!ENDIF
!IFNDEF BHVER
!ERROR BHVER must be set to the name of the build
!ENDIF
!IF "$(CPU)" == "i386"
!IFNDEF WIN4DDK
!ERROR WIN4DDK must be set to the root of the Win4 (Chicago) DDK directory
!ENDIF
!ENDIF
!IFNDEF TOOLS_TYPE
!ERROR TOOLS_TYPE must be set to MSTOOLS or MSVC as appropriate
!ENDIF
#==============================================================================
# The following macros makes it easier to get at files in the tree.
#==============================================================================
BH_BUILD = $(BH_ROOT)\build
BH_INCL = $(BH_ROOT)\include
BH_BIN = $(BH_ROOT)\bin
BH_LIB = $(BH_ROOT)\lib
!IFDEF NT_528
BH_NTDDK = $(BASEDIR)
!ELSE
BH_NTDDK = $(BH_BASEDIR)
!ENDIF
#==============================================================================
# The following are macros around the actual build tools.
#==============================================================================
library = lib
implib = lib
mapsym = $(BH_BIN)\i386\mapsympe
LODCTR = $(BH_BIN)\$(CPU)\lodctr.exe
UNLODCTR = $(BH_BIN)\$(CPU)\unlodctr.exe
# these should be defined in ntwin32.mak
#link = link
#rc = rc
#cvtres = cvtres
#hc = hc
#mc = mc
#==============================================================================
# Our build environment dependent stuff
#==============================================================================
!IF "$(TOOLS_TYPE)" == "MSTOOLS"
CRTDLL_LIB = msvcrt.lib
!ELSE
#CRTDLL_LIB = MSVCRT.LIB
#stevehi: for 10a, force it to be crtdll.lib
CRTDLL_LIB = msvcrt.lib
!ENDIF
!IF DEFINED(LEGO) || DEFINED(FULLEGO)
!IF "$(TOOLS_TYPE)" == "MSTOOLS"
!ERROR You must use MSVC 2.0 for LEGO
!ENDIF
!IFNDEF NODEBUG
!ERROR You must define NODEBUG for LEGO
!ENDIF
!ENDIF
#==============================================================================
# NDIS 3.0 driver for Windows NT
#==============================================================================
DRIVER_INCLUDES = -I$(BH_ROOT)\include \
-I$(BH_NTDDK)\inc \
-I$(BH_NTDDK)\src\network\inc \
-I$(BH_NTDDK)\private\ntos\inc \
-I$(BH_NTDDK)\public\sdk\inc
DRIVER_COMMON_DEFINES = -DNDIS_NT \
-DCONDITION_HANDLING=1 \
-DWIN32_LEAN_AND_MEAN=1 \
-DNT_UP=1 \
-DNT_INST=0 \
-D_IDWBUILD \
!IFNDEF NODEBUG
-DDBG=1 \
!ELSE
-DDBG=0 \
!ENDIF
-DDEVL=1 \
-DNOFIREWALLS
!IFNDEF NODEBUG
DRIVER_DEBUG = -DDEBUG
!ELSE
DRIVER_DEBUG =
!ENDIF
DRIVER_PAGE_FLAG = -DPAGED_CODE_ENABLED
DRIVER_COMMON_CFLAGS = -DMSINTERNAL -D_NTSDK $(DRIVER_PAGE_FLAG)
#==============================================================================
# The following section handles Intel processor-dependent definitions.
#==============================================================================
!IF "$(CPU)" == "i386"
# we always want symbols on i386 builds
BUILD_SYMBOLS = YES
BH_CPU = -D_X86_=1
# Optional CFLAG overides for this platform
!IF "$(TOOLS_TYPE)" == "MSTOOLS"
# BUGBUG: With cl386 Version 8.0.3190a the optimizations in the compiler have bugs
# which break our code...we should try turning optimizations back on with a new compiler
# We assume that MSTOOLS is old compiler and VC20 is new compiler, and so override the
# optimization flags given us by NTWIN32.MAK
BH_OPTCFLAGS = -Od -Z7
!ELSE
BH_OPTCFLAGS = -Od -Z7
!ENDIF
#
# Platform dependent Driver defines
#
!IFDEF NT_528
NTDDK_LIBPATH = $(BH_NTDDK)\lib\i386\free
!ELSE
NTDDK_LIBPATH = $(BH_NTDDK)\lib\i386
!ENDIF
!IFDEF NTBUILD_TREE
NTDDK_LIBPATH = $(BH_NTDDK)\public\sdk\lib\i386
!ENDIF
DRIVER_ENTRY = DriverEntry@8
DRIVER_DEFINES = $(DRIVER_COMMON_DEFINES) $(DRIVER_DEBUG) -D_X86_=1 -Di386=1 -DSTD_CALL
DRIVER_CFLAGS = $(DRIVER_COMMON_CFLAGS) $(DRIVER_INCLUDES) $(DRIVER_DEFINES) -nologo -c -Zel -Zp8 -W3 -Gz -H63 -G4 -Ogitb1
DRIVER_LIBS = $(NTDDK_LIBPATH)\ntoskrnl.lib \
$(NTDDK_LIBPATH)\libcntpr.lib \
$(NTDDK_LIBPATH)\hal.lib \
$(NTDDK_LIBPATH)\ndis.lib
#
# LEGO STUFF
#
!IF DEFINED(LEGO) || DEFINED(FULLLEGO)
path=$(BH_ROOT)\lego\tools\x86;$(PATH)
!ENDIF
!IF DEFINED(FULLEGO)
Lib=$(BH_ROOT)\lego\msvc20.lib\x86;$(LIB)
!ENDIF
!ENDIF
#==============================================================================
# The following section handles Mips processor-dependent definitions.
#==============================================================================
!IF "$(CPU)" == "MIPS"
BH_CPU = -D_MIPS_=1
# Optional CFLAG overides for this platform
BH_OPTCFLAGS = -Z7
#
# Platform dependent Driver defines
#
!IFDEF NT_528
NTDDK_LIBPATH = $(BH_NTDDK)\lib\mips\free
!ELSE
NTDDK_LIBPATH = $(BH_NTDDK)\lib\mips
!ENDIF
DRIVER_ENTRY = DriverEntry
DRIVER_DEFINES = $(DRIVER_COMMON_DEFINES) $(DRIVER_DEBUG) -DMIPS=1 -D_MIPS_=1 -DNO_EXT_KEYS -DMIPSEL -DR4000 -D_M_MRX000=4000 -DBETA=0 -D__stdcall= -D__cdecl=
DRIVER_CFLAGS = $(DRIVER_COMMON_CFLAGS) $(DRIVER_INCLUDES) $(DRIVER_DEFINES) -nologo -c -W3 -Ox -QmipsOb2000 -Gt0
DRIVER_LIBS = $(NTDDK_LIBPATH)\ntoskrnl.lib $(NTDDK_LIBPATH)\hal.lib $(NTDDK_LIBPATH)\ndis.lib
#
# LEGO STUFF
#
!IF DEFINED(LEGO) || DEFINED(FULLLEGO)
!ERROR Lego is only valid for x86
!ENDIF
!ENDIF
#==============================================================================
# The following section handles Mips processor-dependent definitions.
#==============================================================================
!IF "$(CPU)" == "PPC"
BH_CPU = -D_PPC_=1
# Optional CFLAG overides for this platform
BH_OPTCFLAGS = -Z7
#
# Platform dependent Driver defines
#
!IFDEF NT_528
NTDDK_LIBPATH = $(BH_NTDDK)\lib\ppc\free
!ELSE
NTDDK_LIBPATH = $(BH_NTDDK)\lib\ppc
!ENDIF
!IFDEF NTBUILD_TREE
NTDDK_LIBPATH = $(BH_NTDDK)\public\sdk\lib\ppc
!ENDIF
DRIVER_ENTRY = DriverEntry
DRIVER_DEFINES = $(DRIVER_COMMON_DEFINES) $(DRIVER_DEBUG) -DPPC=1 -D_PPC_=1 -DNO_EXT_KEYS -DBETA=0 -D__stdcall= -D__cdecl=
DRIVER_CFLAGS = $(DRIVER_COMMON_CFLAGS) $(DRIVER_INCLUDES) $(DRIVER_DEFINES) -nologo -c -W3 -Ox
DRIVER_LIBS = $(NTDDK_LIBPATH)\ntoskrnl.lib $(NTDDK_LIBPATH)\hal.lib $(NTDDK_LIBPATH)\ndis.lib
#
# LEGO STUFF
#
!IF DEFINED(LEGO) || DEFINED(FULLLEGO)
!ERROR Lego is only valid for x86
!ENDIF
!ENDIF
#==============================================================================
# The following section handles ALPHA processor-dependent definitions.
#==============================================================================
!IF "$(CPU)" == "ALPHA"
BH_CPU = -D_ALPHA_=1
# Optional CFLAG overides for this platform
BH_OPTCFLAGS = -Z7
#
# Platform dependent Driver defines
#
!IFDEF NT_528
NTDDK_LIBPATH = $(BH_NTDDK)\lib\alpha\free
!ELSE
NTDDK_LIBPATH = $(BH_NTDDK)\lib\alpha
!ENDIF
DRIVER_ENTRY = DriverEntry
DRIVER_DEFINES = $(DRIVER_DEBUG) -DALPHA=1 -D_ALPHA_=1 -DNO_EXT_KEYS -DWIN32_LEAN_AND_MEAN=1 \
-DCONDITION_HANDLING=1 -DNT_INST=0 -DNT_UP=1 -DDBG=0 -DDEVL=1 -DBETA=0 \
-DNOFIREWALLS -D__stdcall= -D_cdecl= -D__cdecl= -Dcdecl=
DRIVER_CFLAGS = $(DRIVER_COMMON_CFLAGS) $(DRIVER_INCLUDES) $(DRIVER_DEFINES) -nologo /c /W3 /Ox -d2"switch no*check*" -d2"switch mscdev"
DRIVER_LIBS = $(NTDDK_LIBPATH)\ntoskrnl.lib \
$(NTDDK_LIBPATH)\libcntpr.lib \
$(NTDDK_LIBPATH)\hal.lib \
$(NTDDK_LIBPATH)\ndis.lib
#
# LEGO STUFF
#
!IF DEFINED(LEGO) || DEFINED(FULLLEGO)
!ERROR Lego is only valid for x86
!ENDIF
!ENDIF
#==============================================================================
# No processor type has been defined.
#==============================================================================
!IFNDEF CPU
!ERROR Must specify CPU environment variable (CPU=i386 or CPU=MIPS)!
!ENDIF
#==============================================================================
# Common macros for Bloodhound projects.
#==============================================================================
!IFNDEF NODEBUG
CHECKMEM = 1
DOCHECKMEM = -DCHECKMEM
BH_CDEBUG = $(cdebug) -DDEBUG
!ELSE
CHECKMEM =
DOCHECKMEM =
BH_CDEBUG = $(cdebug)
!ENDIF
#
# optional debug flags, particularly for LEGO
#
!IF !DEFINED(LEGO) && !DEFINED(FULLLEGO)
# this is the normal ntwin32.mak debug flags, with symbol generation
# always turned on
BH_LDEBUG = $(ldebug) -debug:full -debugtype:both
!ELSE
# these are the LEGO flags
BH_LDEBUG = -debug -debugtype:both,fixup /opt:ref
BH_CDEBUG = $(BH_CDEBUG) -Gy
!ENDIF
BH_SUBSYSTEM = WINDOWS
#
# Compiler FLAGS
#
# Note we override to always generate symbolic information, as we always use splitsym
# and we optional override with BH_OPFLAGS for optimization bugs in compilers
#
BH_CFLAGS = $(cflags) $(cvarsdll) $(BH_CDEBUG) $(BH_OPTCFLAGS) \
!IFNDEF SMS
-DNTAS_ONLY \
!ENDIF
-D_NTSDK -nologo -WX -I$(BH_INCL)
# -D_NTSDK -nologo -I$(BH_INCL)
#
# LINK FLAGS
#
BH_LFLAGS = $(lflags) $(BH_LDEBUG) -machine:$(CPU) -MAP:$*.map
#
# Lib Flags
#
BH_LIBFLAGS = -machine:$(CPU)
#
# DLL Link Flags
#
BHDLL_LFLAGS = $(BH_LFLAGS) -entry:DLLEntry$(DLLENTRY) -dll
#
# Executable Libraries
#
BH_LIBS = $(CRTDLL_LIB) $(winlibs)
#stevehi force crtdll instead of msvcrt.dll
#BH_LIBS = $(guilibsdll)
#
# DLL Libraries
#
#BHDLL_LIBS = $(guilibsdll)
# stevehi force crtdll instead of msvcrt.dll
BHDLL_LIBS = $(CRTDLL_LIB) $(winlibs)
BH_LIBS = $(BH_LIBS) $(BH_BUILD)\dbcs.lib
BHDLL_LIBS = $(BHDLL_LIBS) $(BH_BUILD)\dbcs.lib
DRIVER_LFLAGS = -out:nt\bhnt.sys \
-debug:MINIMAL \
-debugtype:coff \
-machine:$(CPU) \
-align:0x200 \
-subsystem:native \
-debug:notmapped \
-debugtype:coff \
-base:0x10000 \
-entry:$(DRIVER_ENTRY)
BH_COMMON = $(BH_INCL)\nal.h \
$(BH_INCL)\bh.h \
$(BH_INCL)\bhtypes.h \
$(BH_INCL)\buffer.h \
$(BH_INCL)\frame.h \
$(BH_INCL)\parser.h \
$(BH_INCL)\bherr.h
@@ -0,0 +1,107 @@
/*---------------------------------------------------------------*/
/* STOLEN from NT build */
/* */
/* The following section actually creates the version structure. */
/* They are ignored if we are not being invoked by RC. */
/* */
/* ntverp.H must be included before including this file */
/* */
/* If VER_LEGALCOPYRIGHT_STR is not defined, it will be */
/* constructed using VER_LEGALCOPYRIGHT_YEARS, so at least one */
/* these macros must be defined before including this file. */
/* */
/* VER_FILETYPE, VER_FILESUBTYPE, VER_FILEDESCRIPTION_STR, and */
/* VER_INTERNALNAME_STR must be defined before including this */
/* file. */
/* */
/* If VER_FILEVERSION is not defined, VER_PRODUCTVERSION will be */
/* used instead. If VER_FILEVERSION_STR is not defined, */
/* VER_PRODUCTVERSION_STR will be used instead. */
/* */
/* If VER_ORIGINALFILENAME_STR is not defined, it is set to */
/* the value in VER_INTERNALNAME_STR. */
/* */
/* If INTL is defined, then this is assumed to be an */
/* an international build; two string blocks will be created, */
/* (since all version resources must have English), and the */
/* second one can be localized */
/* */
/*---------------------------------------------------------------*/
#ifdef RC_INVOKED
#include "bhver.h"
#ifndef VER_LEGALCOPYRIGHT_YEARS
#define VER_LEGALCOPYRIGHT_YEARS "1981-1996"
#endif
#ifndef VER_LEGALCOPYRIGHT_STR
#define VER_LEGALCOPYRIGHT_STR "Copyright (c) Microsoft Corp. " VER_LEGALCOPYRIGHT_YEARS
#endif
#ifndef VER_PRODUCTNAME_STR
#define VER_PRODUCTNAME_STR "Microsoft\256 Network Monitor\0"
#endif
#ifndef VER_PRODUCTVERSION
#define VER_PRODUCTVERSION VER_BUILDMAJOR,VER_BUILDMINOR,VER_BUILDNUMBER,001
#endif
#ifndef VER_FILEVERSION
#define VER_FILEVERSION VER_PRODUCTVERSION
#endif
#ifndef VER_PRODUCTVERSION_STR
#define VER_PRODUCTVERSION_STR VER_BUILDMM_STR "." VER_BUILDNUMBER_STR
#endif
#ifndef VER_FILEVERSION_STR
#define VER_FILEVERSION_STR BH_VER ", Build " VER_BUILDMM_STR "." VER_BUILDNUMBER_STR
#endif
#ifndef VER_ORIGINALFILENAME_STR
#define VER_ORIGINALFILENAME_STR VER_INTERNALNAME_STR
#endif
#ifndef VER_COMPANYNAME_STR
#define VER_COMPANYNAME_STR "Microsoft Corporation\0"
#endif
VS_VERSION_INFO VERSIONINFO
FILEVERSION VER_FILEVERSION
PRODUCTVERSION VER_PRODUCTVERSION
FILEFLAGSMASK 0x03fL
#ifdef _DEBUG
FILEFLAGS VS_FF_DEBUG
#else
FILEFLAGS 0x0L
#endif
FILEOS VOS_DOS_WINDOWS32
FILETYPE VER_FILETYPE
FILESUBTYPE VER_FILESUBTYPE
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0" /* LANG_ENGLISH/SUBLANG_ENGLISH_US, Unicode CP */
BEGIN
VALUE "CompanyName", VER_COMPANYNAME_STR
VALUE "FileDescription", VER_FILEDESCRIPTION_STR
VALUE "FileVersion", VER_FILEVERSION_STR
VALUE "InternalName", VER_INTERNALNAME_STR
VALUE "LegalCopyright", VER_LEGALCOPYRIGHT_STR
VALUE "OriginalFilename",VER_ORIGINALFILENAME_STR
VALUE "ProductName", VER_PRODUCTNAME_STR
VALUE "ProductVersion", VER_PRODUCTVERSION_STR
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0409, 0x04B0
END
END
#endif
@@ -0,0 +1,592 @@
//=============================================================================
// Microsoft (R) Bloodhound (tm). Copyright (C) 1991-1992.
//
// MODULE: bherr.h
//
// This is the top-level include file for all BLOODHOUND error codes
//=============================================================================
#if !defined(_BHERR_)
#define _BHERR_
//=============================================================================
// The operation succeeded.
//=============================================================================
#define BHERR_SUCCESS 0
//=============================================================================
// An error occured creating a memory-mapped file.
//=============================================================================
#define BHERR_MEMORY_MAPPED_FILE_ERROR 1
//=============================================================================
// The handle to a filter is invalid.
//=============================================================================
#define BHERR_INVALID_HFILTER 2
//=============================================================================
// Capturing has already been started.
//=============================================================================
#define BHERR_CAPTURING 3
//=============================================================================
// Capturing has not been started.
//=============================================================================
#define BHERR_NOT_CAPTURING 4
//=============================================================================
// The are no frames available.
//=============================================================================
#define BHERR_NO_MORE_FRAMES 5
//=============================================================================
// The buffer is too small to complete the operation.
//=============================================================================
#define BHERR_BUFFER_TOO_SMALL 6
//=============================================================================
// No protocol was able to recognize the frame.
//=============================================================================
#define BHERR_FRAME_NOT_RECOGNIZED 7
//=============================================================================
// The file already exists.
//=============================================================================
#define BHERR_FILE_ALREADY_EXISTS 8
//=============================================================================
// A needed device driver was not found or is not loaded.
//=============================================================================
#define BHERR_DRIVER_NOT_FOUND 9
//=============================================================================
// This address aready exists in the database.
//=============================================================================
#define BHERR_ADDRESS_ALREADY_EXISTS 10
//=============================================================================
// The frame handle is invalid.
//=============================================================================
#define BHERR_INVALID_HFRAME 11
//=============================================================================
// The protocol handle is invalid.
//=============================================================================
#define BHERR_INVALID_HPROTOCOL 12
//=============================================================================
// The property handle is invalid.
//=============================================================================
#define BHERR_INVALID_HPROPERTY 13
//=============================================================================
// The the object has been locked.
//=============================================================================
#define BHERR_LOCKED 14
//=============================================================================
// A pop operation was attempted on an empty stack.
//=============================================================================
#define BHERR_STACK_EMPTY 15
//=============================================================================
// A push operation was attempted on an full stack.
//=============================================================================
#define BHERR_STACK_OVERFLOW 16
//=============================================================================
// There are too many protocols active.
//=============================================================================
#define BHERR_TOO_MANY_PROTOCOLS 17
//=============================================================================
// The file was not found.
//=============================================================================
#define BHERR_FILE_NOT_FOUND 18
//=============================================================================
// No memory was available. Shut down windows to free up resources.
//=============================================================================
#define BHERR_OUT_OF_MEMORY 19
//=============================================================================
// The capture is already in the paused state.
//=============================================================================
#define BHERR_CAPTURE_PAUSED 20
//=============================================================================
// There are no buffers available or present.
//=============================================================================
#define BHERR_NO_BUFFERS 21
//=============================================================================
// There are already buffers present.
//=============================================================================
#define BHERR_BUFFERS_ALREADY_EXIST 22
//=============================================================================
// The object is not locked.
//=============================================================================
#define BHERR_NOT_LOCKED 23
//=============================================================================
// A integer type was out of range.
//=============================================================================
#define BHERR_OUT_OF_RANGE 24
//=============================================================================
// An object was locked too many times.
//=============================================================================
#define BHERR_LOCK_NESTING_TOO_DEEP 25
//=============================================================================
// A parser failed to load.
//=============================================================================
#define BHERR_LOAD_PARSER_FAILED 26
//=============================================================================
// A parser failed to unload.
//=============================================================================
#define BHERR_UNLOAD_PARSER_FAILED 27
//=============================================================================
// The address database handle is invalid.
//=============================================================================
#define BHERR_INVALID_HADDRESSDB 28
//=============================================================================
// The MAC address was not found in the database.
//=============================================================================
#define BHERR_ADDRESS_NOT_FOUND 29
//=============================================================================
// The network software was not found in the system.
//=============================================================================
#define BHERR_NETWORK_NOT_PRESENT 30
//=============================================================================
// There is no property database for a protocol.
//=============================================================================
#define BHERR_NO_PROPERTY_DATABASE 31
//=============================================================================
// A property was not found in the database.
//=============================================================================
#define BHERR_PROPERTY_NOT_FOUND 32
//=============================================================================
// The property database handle is in valid.
//=============================================================================
#define BHERR_INVALID_HPROPERTYDB 33
//=============================================================================
// The protocol has not been enabled.
//=============================================================================
#define BHERR_PROTOCOL_NOT_ENABLED 34
//=============================================================================
// The protocol DLL could not be found.
//=============================================================================
#define BHERR_PROTOCOL_NOT_FOUND 35
//=============================================================================
// The parser DLL is not valid.
//=============================================================================
#define BHERR_INVALID_PARSER_DLL 36
//=============================================================================
// There are no properties attached.
//=============================================================================
#define BHERR_NO_ATTACHED_PROPERTIES 37
//=============================================================================
// There are no frames in the buffer.
//=============================================================================
#define BHERR_NO_FRAMES 38
//=============================================================================
// The capture file format is not valid.
//=============================================================================
#define BHERR_INVALID_FILE_FORMAT 39
//=============================================================================
// The OS could not create a temporary file.
//=============================================================================
#define BHERR_COULD_NOT_CREATE_TEMPFILE 40
//=============================================================================
// There is not enough MS-DOS memory available.
//=============================================================================
#define BHERR_OUT_OF_DOS_MEMORY 41
//=============================================================================
// There are no protocols enabled.
//=============================================================================
#define BHERR_NO_PROTOCOLS_ENABLED 42
//=============================================================================
// The MAC type is invalid or unsupported.
//=============================================================================
#define BHERR_UNKNOWN_MACTYPE 46
//=============================================================================
// There is no routing information present in the MAC frame.
//=============================================================================
#define BHERR_ROUTING_INFO_NOT_PRESENT 47
//=============================================================================
// The network handle is invalid.
//=============================================================================
#define BHERR_INVALID_HNETWORK 48
//=============================================================================
// The network is already open.
//=============================================================================
#define BHERR_NETWORK_ALREADY_OPENED 49
//=============================================================================
// The network is not open.
//=============================================================================
#define BHERR_NETWORK_NOT_OPENED 50
//=============================================================================
// The frame was not found in the buffer.
//=============================================================================
#define BHERR_FRAME_NOT_FOUND 51
//=============================================================================
// There are no handles available.
//=============================================================================
#define BHERR_NO_HANDLES 53
//=============================================================================
// The network ID is invalid.
//=============================================================================
#define BHERR_INVALID_NETWORK_ID 54
//=============================================================================
// The capture handle is invalid.
//=============================================================================
#define BHERR_INVALID_HCAPTURE 55
//=============================================================================
// The protocol has already been enabled.
//=============================================================================
#define BHERR_PROTOCOL_ALREADY_ENABLED 56
//=============================================================================
// The filter expression is invalid.
//=============================================================================
#define BHERR_FILTER_INVALID_EXPRESSION 57
//=============================================================================
// A transmit error occured.
//=============================================================================
#define BHERR_TRANSMIT_ERROR 58
//=============================================================================
// The buffer handle is invalid.
//=============================================================================
#define BHERR_INVALID_HBUFFER 59
//=============================================================================
// The specified data is unknown or invalid.
//=============================================================================
#define BHERR_INVALID_DATA 60
//=============================================================================
// The MS-DOS/NDIS 2.0 network driver is not loaded.
//=============================================================================
#define BHERR_MSDOS_DRIVER_NOT_LOADED 61
//=============================================================================
// The Windows VxD/NDIS 3.0 network driver is not loaded.
//=============================================================================
#define BHERR_WINDOWS_DRIVER_NOT_LOADED 62
//=============================================================================
// The MS-DOS/NDIS 2.0 driver had an init-time failure.
//=============================================================================
#define BHERR_MSDOS_DRIVER_INIT_FAILURE 63
//=============================================================================
// The Windows/NDIS 3.0 driver had an init-time failure.
//=============================================================================
#define BHERR_WINDOWS_DRIVER_INIT_FAILURE 64
//=============================================================================
// The network driver is busy and cannot handle requests.
//=============================================================================
#define BHERR_NETWORK_BUSY 65
//=============================================================================
// The capture is not paused.
//=============================================================================
#define BHERR_CAPTURE_NOT_PAUSED 66
//=============================================================================
// The frame/packet length is not valid.
//=============================================================================
#define BHERR_INVALID_PACKET_LENGTH 67
//=============================================================================
// An internal exception occured.
//=============================================================================
#define BHERR_INTERNAL_EXCEPTION 69
//=============================================================================
// The MAC driver does not support promiscious mode.
//=============================================================================
#define BHERR_PROMISCUOUS_MODE_NOT_SUPPORTED 70
//=============================================================================
// The MAC driver failed to open.
//=============================================================================
#define BHERR_MAC_DRIVER_OPEN_FAILURE 71
//=============================================================================
// The protocol went off the end of the frame.
//=============================================================================
#define BHERR_RUNAWAY_PROTOCOL 72
//=============================================================================
// An asynchronous operation is still pending.
//=============================================================================
#define BHERR_PENDING 73
//=============================================================================
// Access is denied.
//=============================================================================
#define BHERR_ACCESS_DENIED 74
//=============================================================================
// The password handle is invalid.
//=============================================================================
#define BHERR_INVALID_HPASSWORD 75
//=============================================================================
// A bad parameter was detected.
//=============================================================================
#define BHERR_INVALID_PARAMETER 76
//=============================================================================
// An error occured reading the file.
//=============================================================================
#define BHERR_FILE_READ_ERROR 77
//=============================================================================
// An error occured writing to the file.
//=============================================================================
#define BHERR_FILE_WRITE_ERROR 78
//=============================================================================
// The protocol has not been registered
//=============================================================================
#define BHERR_PROTOCOL_NOT_REGISTERED 79
//=============================================================================
// The frame does not contain an IP address.
//=============================================================================
#define BHERR_IP_ADDRESS_NOT_FOUND 80
//=============================================================================
// The transmit request was cancelled.
//=============================================================================
#define BHERR_TRANSMIT_CANCELLED 81
//=============================================================================
// The operation cannot be performed on a capture with 1 or more locked frames.
//=============================================================================
#define BHERR_LOCKED_FRAMES 82
//=============================================================================
// A cancel transmit request was submitted but there were no transmits pending.
//=============================================================================
#define BHERR_NO_TRANSMITS_PENDING 83
//=============================================================================
// Path not found.
//=============================================================================
#define BHERR_PATH_NOT_FOUND 84
//=============================================================================
// A windows error has occured.
//=============================================================================
#define BHERR_WINDOWS_ERROR 85
//=============================================================================
// The handle to the frame has no frame number.
//=============================================================================
#define BHERR_NO_FRAME_NUMBER 86
//=============================================================================
// The frame is not associated with any capture.
//=============================================================================
#define BHERR_FRAME_HAS_NO_CAPTURE 87
//=============================================================================
// The frame is already associated with a capture.
//=============================================================================
#define BHERR_FRAME_ALREADY_HAS_CAPTURE 88
//=============================================================================
// The NAL is not remotable.
//=============================================================================
#define BHERR_NAL_IS_NOT_REMOTE 89
//=============================================================================
// The API is not supported
//=============================================================================
#define BHERR_NOT_SUPPORTED 90
//=============================================================================
// Bloodhound should discard the current frame. This error code is only used
// duing a filterd SaveCapture() API call.
//=============================================================================
#define BHERR_DISCARD_FRAME 91
//=============================================================================
// Bloodhound should cancel the current save. This error code is only used
// duing a filterd SaveCapture() API call.
//=============================================================================
#define BHERR_CANCEL_SAVE_CAPTURE 92
//=============================================================================
// The connection to the remote machine has been lost
//=============================================================================
#define BHERR_LOST_CONNECTION 93
//=============================================================================
// The media/mac type is not valid.
//=============================================================================
#define BHERR_INVALID_MEDIA_TYPE 94
//=============================================================================
// The Remote Agent is currently in use
//=============================================================================
#define BHERR_AGENT_IN_USE 95
//=============================================================================
// The request has timed out
//=============================================================================
#define BHERR_TIMEOUT 96
//=============================================================================
// The remote agent has been disconnected
//=============================================================================
#define BHERR_DISCONNECTED 97
//=============================================================================
// A timer required for operation failed creation
//=============================================================================
#define BHERR_SETTIMER_FAILED 98
//=============================================================================
// A network error occured.
//=============================================================================
#define BHERR_NETWORK_ERROR 99
//=============================================================================
// The capture file is an uplevel version that this netmon does not understand
//=============================================================================
#define BHERR_UPLEVEL_CAPTURE_FILE 113
#endif
@@ -0,0 +1,66 @@
;==============================================================================
; Microsoft (R) Bloodhound (tm). Copyright (C) 1991-1992.
;
; MODULE: bherr.inc
;
; This source file contains Bloodhound error code definitions.
;==============================================================================
BHERR_SUCCESS = 0
BHERR_INTERNAL_ERROR = 1
BHERR_INVALID_HFILTER = 2
BHERR_CAPTURING = 3
BHERR_NOT_CAPTURING = 4
BHERR_NO_MORE_FRAMES = 5
BHERR_BUFFER_TOO_SMALL = 6
BHERR_DRIVER_NOT_FOUND = 9
BHERR_ADDRESS_ALREADY_EXISTS = 10
BHERR_INVALID_HFRAME = 11
BHERR_INVALID_HPARSER = 12
BHERR_INVALID_HPROPERTY = 13
BHERR_LOCKED = 14
BHERR_STACK_EMPTY = 15
BHERR_STACK_OVERFLOW = 16
BHERR_TOO_MANY_PARSERS = 17
BHERR_FILE_NOT_FOUND = 18
BHERR_OUT_OF_MEMORY = 19
BHERR_CAPTURE_PAUSED = 20
BHERR_NO_BUFFERS = 21
BHERR_BUFFERS_ALREADY_EXIST = 22
BHERR_NOT_LOCKED = 23
BHERR_OUT_OF_RANGE = 24
BHERR_LOCK_NESTING_TOO_DEEP = 25
BHERR_LOAD_PARSER_FAILED = 26
BHERR_UNLOAD_PARSER_FAILED = 27
BHERR_INVALID_HADDRESSDB = 28
BHERR_ADDRESS_NOT_FOUND = 29
BHERR_NETWORK_NOT_PRESENT = 30
BHERR_NO_PROPERTYDB = 31
BHERR_PROPERTY_NOT_FOUND = 32
BHERR_INVALID_HPROPERTYDB = 33
BHERR_PARSER_NOT_ENABLED = 34
BHERR_PARSER_NOT_FOUND = 35
BHERR_INVALID_PARSER_DLL = 36
BHERR_NO_ATTACHED_PROPERTIES = 37
BHERR_NO_FRAMES = 38
BHERR_INVALID_FILE_FORMAT = 39
BHERR_COULD_NOT_CREATE_TEMPFILE = 40
BHERR_OUT_OF_DOS_MEMORY = 41
BHERR_NO_PARSERS_ENABLED = 42
BHERR_NAME_NOT_FOUND = 43
BHERR_ADDR_NOT_FOUND = 44
BHERR_NAMETABLE_FULL = 45
BHERR_UNKNOWN_MACTYPE = 46
BHERR_ROUTING_INFO_NOT_PRESENT = 47
BHERR_INVALID_HNETWORK = 48
BHERR_NETWORK_ALREADY_OPENED = 49
BHERR_NETWORK_NOT_OPENED = 50
BHERR_FRAME_NOT_FOUND = 51
BHERR_BAD_FILE_FORMAT = 52
BHERR_NO_HANDLES = 53
BHERR_INVALID_NETWORK_ID = 54
BHERR_INVALID_HCAPTURE = 55
BHERR_PARSER_ALREADY_ENABLED = 56
@@ -0,0 +1,270 @@
//============================================================================
// MODULE: Filter.h
//
// Description:
//
// Bloodhound DLL for Filtering.
//
// Modification History
//
// stevehi 03/22/93 Created.
// raypa 10/25/93 Changed HPROPERTYDB to HPROTOCOL.
// SteveHi 10/28/93 pull Value out of Object union
//============================================================================
#if !defined(_FILTER_)
#define _FILTER_
//============================================================================
// types
//============================================================================
typedef HFILTER * LPHFILTER;
typedef DWORD FILTERACTIONTYPE;
typedef DWORD VALUETYPE;
// check for protocols existing in the frame.
// ProtocolPart
// this is the raw data for a Protocol based expression
//
// WHAT??? FIELD DESCRIPTION EXAMPLE
// ------- ----- ----------- -------
// Count of Protocol(nPropertyDBs) Number of protocols to pass 5
// PropertyDB Table (PropertyDB) Table of HPROTOCOL SMB, LLC, MAC
//
// NOTE: the nPropertyDBs field may also be the following, which implies that
// all are selected but that none have actually been put into the structure
#define PROTOCOL_NUM_ANY (-1)
//... Use PROTOCOLTABLE defined in BHTYPES.H
typedef PROTOCOLTABLE PROTOCOLTABLETYPE; // array of HPROTOCOL's
typedef PROTOCOLTABLETYPE *LPPROTOCOLTABLETYPE;
// filter bits stores who passed what filter per frame to speed up
// the filter process... This is actually an array.
typedef DWORD FILTERBITS;
typedef FILTERBITS *LPFILTERBITS;
typedef SYSTEMTIME *LPTIME;
typedef SYSTEMTIME UNALIGNED * ULPTIME;
// The Filter Object is the basic unit of the postfix stack.
// I need to restart the convert property to value if the comparison does not match.
// To do this, I need the original pointer to the property. Pull the hProperty out of
// the union so that the pointer to the property is saved.
typedef struct _FILTEROBJECT
{
FILTERACTIONTYPE Action; // Object action, see codes below
HPROPERTY hProperty; // property key
union
{
VALUETYPE Value; // value of the object.
HPROTOCOL hProtocol; // protocol key.
LPVOID lpArray; // if array, length is ItemCount below.
LPPROTOCOLTABLETYPE lpProtocolTable; // list of protocols to see if exist in frame.
LPADDRESS lpAddress; // kernel type address, mac or ip
ULPLARGEINT lpLargeInt; // Double DWORD used by NT
ULPTIME lpTime; // pointer to SYSTEMTIME
LPOBJECT_IDENTIFIER lpOID; // pointer to OBJECT_IDENTIFIER
};
union
{
WORD ByteCount; // Number of BYTES!
WORD ByteOffset; // offset for array compare
};
struct _FILTEROBJECT * pNext; // reserved
} FILTEROBJECT;
typedef FILTEROBJECT * LPFILTEROBJECT;
#define FILTERINFO_SIZE (sizeof(FILTEROBJECT) )
typedef struct _FILTERDESC
{
WORD NumEntries;
WORD Flags; // private
LPFILTEROBJECT lpStack;
LPFILTEROBJECT lpKeepLast;
LPVOID UIInstanceData; // UI specific information.
LPFILTERBITS lpFilterBits; // cache who passed
LPFILTERBITS lpCheckBits; // have we looked at it yet?
} FILTERDESC;
typedef FILTERDESC * LPFILTERDESC;
#define FILTERDESC_SIZE sizeof(FILTERDESC)
//============================================================================
// Macros.
//============================================================================
#define FilterGetUIInstanceData(hfilt) (((LPFILTERDESC)hfilt)->UIInstanceData)
#define FilterSetUIInstanceData(hfilt,inst) (((LPFILTERDESC)hfilt)->UIInstanceData = (LPVOID)inst)
//============================================================================
// defines
//============================================================================
#define FILTERFREEPOOLSTART 20
#define INVALIDELEMENT -1
#define INVALIDVALUE ((VALUETYPE) -9999)
// use filter failed to check the return code on FilterFrame.
#define FILTER_FAIL_WITH_ERROR -1
#define FILTER_PASSED TRUE
#define FILTER_FAILED FALSE
// NOTE NOTE NOTE If you change the values of the following constants, you
// MUST modify the TableEval table in filtloc.h.
#define FILTERACTION_INVALID 0
#define FILTERACTION_PROPERTY 1
#define FILTERACTION_VALUE 2
#define FILTERACTION_STRING 3
#define FILTERACTION_ARRAY 4
#define FILTERACTION_AND 5
#define FILTERACTION_OR 6
#define FILTERACTION_XOR 7
#define FILTERACTION_PROPERTYEXIST 8
#define FILTERACTION_CONTAINSNC 9
#define FILTERACTION_CONTAINS 10
#define FILTERACTION_NOT 11
#define FILTERACTION_EQUALNC 12
#define FILTERACTION_EQUAL 13
#define FILTERACTION_NOTEQUALNC 14
#define FILTERACTION_NOTEQUAL 15
#define FILTERACTION_GREATERNC 16
#define FILTERACTION_GREATER 17
#define FILTERACTION_LESSNC 18
#define FILTERACTION_LESS 19
#define FILTERACTION_GREATEREQUALNC 20
#define FILTERACTION_GREATEREQUAL 21
#define FILTERACTION_LESSEQUALNC 22
#define FILTERACTION_LESSEQUAL 23
#define FILTERACTION_PLUS 24
#define FILTERACTION_MINUS 25
#define FILTERACTION_ADDRESS 26
#define FILTERACTION_ADDRESSANY 27
#define FILTERACTION_FROM 28
#define FILTERACTION_TO 29
#define FILTERACTION_FROMTO 30
#define FILTERACTION_AREBITSON 31
#define FILTERACTION_AREBITSOFF 32
#define FILTERACTION_PROTOCOLSEXIST 33
#define FILTERACTION_PROTOCOLEXIST 34
#define FILTERACTION_ARRAYEQUAL 35
#define FILTERACTION_DEREFPROPERTY 36
#define FILTERACTION_LARGEINT 37
#define FILTERACTION_TIME 38
#define FILTERACTION_ADDR_ETHER 39
#define FILTERACTION_ADDR_TOKEN 40
#define FILTERACTION_ADDR_FDDI 41
#define FILTERACTION_ADDR_IPX 42
#define FILTERACTION_ADDR_IP 43
#define FILTERACTION_OID 44
#define FILTERACTION_OID_CONTAINS 45
#define FILTERACTION_OID_BEGINS_WITH 46
#define FILTERACTION_OID_ENDS_WITH 47
#define FILTERACTION_ADDR_VINES 48
#define FILTERACTION_EXPRESSION 97
#define FILTERACTION_BOOL 98
#define FILTERACTION_NOEVAL 99
#define FILTER_NO_MORE_FRAMES 0xFFFFFFFF
#define FILTER_CANCELED 0xFFFFFFFE
#define FILTER_DIRECTION_NEXT TRUE
#define FILTER_DIRECTION_PREV FALSE
//============================================================================
// Helper functions.
//============================================================================
typedef BOOL (WINAPI *STATUSPROC)(DWORD, HCAPTURE, HFILTER, DWORD);
// callback to show filter status:
// DWORD nFrame
// HCAPTURE
// HFILTER
// DWORD UI Instance data (hwnd)
//============================================================================
// Global data.
//============================================================================
//=============================================================================
// FILTER API's.
//=============================================================================
extern HFILTER WINAPI CreateFilter(VOID);
extern DWORD WINAPI DestroyFilter(HFILTER hFilter);
extern HFILTER WINAPI FilterDuplicate(HFILTER hFilter);
extern DWORD WINAPI DisableParserFilter(HFILTER hFilter, HPARSER hParser);
extern DWORD WINAPI EnableParserFilter(HFILTER hFilter, HPARSER hParser);
extern DWORD WINAPI FilterAddObject(HFILTER hFilter, LPFILTEROBJECT lpFilterObject );
extern VOID WINAPI FilterFlushBits(HFILTER hFilter);
extern DWORD WINAPI FilterFrame(HFRAME hFrame, HFILTER hFilter, HCAPTURE hCapture);
// returns -1 == check BH set last error
// 0 == FALSE
// 1 == TRUE
DWORD WINAPI FilterFindFrame ( HFILTER hFilter,
HCAPTURE hCapture,
DWORD nFrame,
STATUSPROC StatusProc,
DWORD UIInstance,
DWORD TimeDelta,
BOOL FilterDirection );
HFRAME FilterFindPropertyInstance ( HFRAME hFrame,
HFILTER hMasterFilter,
HCAPTURE hCapture,
HFILTER hInstanceFilter,
LPPROPERTYINST *lpPropRestartKey,
STATUSPROC StatusProc,
DWORD UIInstance,
DWORD TimeDelta,
BOOL FilterForward );
extern VOID WINAPI SetCurrentFilter(HFILTER);
extern HFILTER WINAPI GetCurrentFilter(VOID);
#endif
@@ -0,0 +1,192 @@
//=============================================================================
// Microsoft (R) Bloodhound (tm). Copyright (C) 1991-1992.
//
// MODULE: bhsupp.h
//=============================================================================
#if !defined(_BHSUPP_)
#define _BHSUPP_
#pragma pack(1)
//=============================================================================
// Windows version constants.
//=============================================================================
#define WINDOWS_VERSION_UNKNOWN 0
#define WINDOWS_VERSION_WIN32S 1
#define WINDOWS_VERSION_WIN32C 2
#define WINDOWS_VERSION_WIN32 3
//=============================================================================
// Frame masks.
//=============================================================================
#define FRAME_MASK_ETHERNET ((BYTE) ~0x01)
#define FRAME_MASK_TOKENRING ((BYTE) ~0x80)
#define FRAME_MASK_FDDI ((BYTE) ~0x01)
//=============================================================================
// ACCESSRIGHTS
//=============================================================================
typedef enum _ACCESSRIGHTS
{
AccessRightsNoAccess, //... Access denied, invalid password.
AccessRightsMonitoring, //... Monitoring mode only.
AccessRightsUserAccess, //... User-level access rights.
AccessRightsAllAccess //... All access.
} ACCESSRIGHTS;
typedef ACCESSRIGHTS *PACCESSRIGHTS;
typedef LPVOID HPASSWORD;
#define HANDLE_TYPE_PASSWORD MAKE_IDENTIFIER('P', 'W', 'D', '$')
//=============================================================================
// Object heap type.
//=============================================================================
typedef LPVOID HOBJECTHEAP; //... Opaque.
//=============================================================================
// Object cleanup procedure.
//=============================================================================
typedef VOID (WINAPI *OBJECTPROC)(HOBJECTHEAP, LPVOID);
#pragma pack()
//=============================================================================
// Bloodhound timers.
//=============================================================================
typedef struct _TIMER *HTIMER;
typedef VOID (WINAPI *BHTIMERPROC)(LPVOID);
extern HTIMER WINAPI BhSetTimer(BHTIMERPROC TimerProc, LPVOID InstData, DWORD TimeOut);
extern VOID WINAPI BhKillTimer(HTIMER hTimer);
//=============================================================================
// Bloodhound driver support.
//=============================================================================
extern LPVOID WINAPI BhAllocSystemMemory(DWORD nBytes);
extern LPVOID WINAPI BhFreeSystemMemory(LPVOID ptr);
extern LPVOID WINAPI BhGetNetworkRequestAddress(DWORD NalRequestType);
//=============================================================================
// Bloodhound global error API.
//=============================================================================
extern DWORD WINAPI BhGetLastError(VOID);
extern DWORD WINAPI BhSetLastError(DWORD Error);
//=============================================================================
// Object manager function prototypes.
//=============================================================================
extern HOBJECTHEAP WINAPI CreateObjectHeap(DWORD ObjectSize, OBJECTPROC ObjectProc);
extern HOBJECTHEAP WINAPI DestroyObjectHeap(HOBJECTHEAP hObjectHeap);
extern LPVOID WINAPI AllocObject(HOBJECTHEAP hObjectHeap);
extern LPVOID WINAPI FreeObject(HOBJECTHEAP hObjectHeap, LPVOID ObjectMemory);
extern DWORD WINAPI GrowObjectHeap(HOBJECTHEAP hObjectHeap, DWORD nObjects);
extern DWORD WINAPI GetObjectHeapSize(HOBJECTHEAP hObjectHeap);
extern VOID WINAPI PurgeObjectHeap(HOBJECTHEAP hObjectHeap);
//=============================================================================
// Memory functions.
//=============================================================================
extern LPVOID WINAPI AllocMemory(DWORD size);
extern LPVOID WINAPI ReallocMemory(LPVOID ptr, DWORD NewSize);
extern VOID WINAPI FreeMemory(LPVOID ptr);
extern VOID WINAPI TestMemory(LPVOID ptr);
extern DWORD WINAPI MemorySize(LPVOID ptr);
extern HANDLE WINAPI MemoryHandle(LPBYTE ptr);
//=============================================================================
// MS BTE format buffer API's.
//=============================================================================
extern HBUFFER WINAPI BhAllocNetworkBuffer(DWORD NetworkID, DWORD BufferSize, LPDWORD nBytesAllocated);
extern HBUFFER WINAPI BhFreeNetworkBuffer(HBUFFER hBuffer);
extern VOID WINAPI BhCompactNetworkBuffer(HBUFFER hBuffer);
extern LPFRAME WINAPI BhGetNetworkFrame(HBUFFER hBuffer, DWORD FrameNumber);
//=============================================================================
// Password API's.
//=============================================================================
extern HPASSWORD WINAPI CreatePassword(LPSTR password);
extern VOID WINAPI DestroyPassword(HPASSWORD hPassword);
extern ACCESSRIGHTS WINAPI ValidatePassword(HPASSWORD hPassword);
//=============================================================================
// EXPRESSION API's
//=============================================================================
extern LPEXPRESSION WINAPI InitializeExpression(LPEXPRESSION Expression);
extern LPPATTERNMATCH WINAPI InitializePattern(LPPATTERNMATCH Pattern, LPVOID ptr, DWORD offset, DWORD length);
extern LPEXPRESSION WINAPI AndExpression(LPEXPRESSION Expression, LPPATTERNMATCH Pattern);
extern LPEXPRESSION WINAPI OrExpression(LPEXPRESSION Expression, LPPATTERNMATCH Pattern);
extern LPPATTERNMATCH WINAPI NegatePattern(LPPATTERNMATCH Pattern);
extern LPADDRESSTABLE WINAPI AdjustOperatorPrecedence(LPADDRESSTABLE AddressTable);
extern LPADDRESS WINAPI NormalizeAddress(LPADDRESS Address);
extern LPADDRESSTABLE WINAPI NormalizeAddressTable(LPADDRESSTABLE AddressTable);
//=============================================================================
// SERVICE API's
//=============================================================================
extern HANDLE WINAPI BhOpenService(LPSTR ServiceName);
extern VOID WINAPI BhCloseService(HANDLE ServiceHandle);
extern DWORD WINAPI BhStartService(HANDLE ServiceHandle);
extern DWORD WINAPI BhStopService(HANDLE ServiceHandle);
//=============================================================================
// MISC. API's
//=============================================================================
extern DWORD WINAPI BhGetWindowsVersion(VOID);
extern BOOL WINAPI IsDaytona(VOID);
extern VOID dprintf(LPSTR format, ...);
#endif
@@ -0,0 +1,645 @@
//=============================================================================
// Microsoft (R) Bloodhound (tm). Copyright (C) 1991-1992.
//
// MODULE: bhTypes.h
//
// This is the top-level include file for all Bloodhound struct definitions.
//=============================================================================
#if !defined(_BHTYPE_)
#define _BHTYPE_
#pragma pack(1)
//=============================================================================
// Unaligned base type definitions.
//=============================================================================
typedef VOID UNALIGNED *ULPVOID;
typedef BYTE UNALIGNED *ULPBYTE;
typedef WORD UNALIGNED *ULPWORD;
typedef DWORD UNALIGNED *ULPDWORD;
typedef CHAR UNALIGNED *ULPSTR;
typedef SYSTEMTIME UNALIGNED *ULPSYSTEMTIME;
//=============================================================================
// Handle definitions.
//=============================================================================
typedef struct _PARSER *HPARSER;
typedef struct _FRAMEDESC *HFRAME;
typedef struct _CAPTURE *HCAPTURE;
typedef struct _FILTER *HFILTER;
typedef struct _ADDRESSDB *HADDRESSDB;
typedef struct _PROTOCOL *HPROTOCOL;
typedef DWORD HPROPERTY;
typedef HPROTOCOL *LPHPROTOCOL;
//=============================================================================
// GetTableSize() -- The following macro is used to calculate the actual
// length of Bloodhound variable-length table structures.
//
// EXAMPLE:
//
// GetTableSize(PROTOCOLTABLESIZE, ProtocolTable->nProtocols, sizeof(HPROTOCOL))
//=============================================================================
#define GetTableSize(TableBaseSize, nElements, ElementSize) ((TableBaseSize) + ((nElements) * (ElementSize)))
//=============================================================================
// Object type identifiers.
//=============================================================================
typedef DWORD OBJECTTYPE;
#ifndef MAKE_IDENTIFIER
#define MAKE_IDENTIFIER(a, b, c, d) ((DWORD) MAKELONG(MAKEWORD(a, b), MAKEWORD(c, d)))
#endif
#define HANDLE_TYPE_INVALID MAKE_IDENTIFIER(-1, -1, -1, -1)
#define HANDLE_TYPE_CAPTURE MAKE_IDENTIFIER('C', 'A', 'P', '$')
#define HANDLE_TYPE_PARSER MAKE_IDENTIFIER('P', 'S', 'R', '$')
#define HANDLE_TYPE_ADDRESSDB MAKE_IDENTIFIER('A', 'D', 'R', '$')
#define HANDLE_TYPE_PROTOCOL MAKE_IDENTIFIER('P', 'R', 'T', '$')
#define HANDLE_TYPE_BUFFER MAKE_IDENTIFIER('B', 'U', 'F', '$')
//=============================================================================
// Bloodhound constant definitions.
//=============================================================================
#define INLINE __inline
#define BHAPI WINAPI
#define MAX_NAME_LENGTH 16
#define MAX_ADDR_LENGTH 6
//=============================================================================
// Ethernet type (ETYPE) constant definitions.
//=============================================================================
#define ETYPE_LOOP 0x9000
#define ETYPE_3COM_NETMAP1 0x9001
#define ETYPE_3COM_NETMAP2 0x9002
#define ETYPE_IBM_RT 0x80D5
#define ETYPE_NETWARE 0x8137
#define ETYPE_XNS1 0x0600
#define ETYPE_XNS2 0x0807
#define ETYPE_3COM_NBP0 0x3C00
#define ETYPE_3COM_NBP1 0x3C01
#define ETYPE_3COM_NBP2 0x3C02
#define ETYPE_3COM_NBP3 0x3C03
#define ETYPE_3COM_NBP4 0x3C04
#define ETYPE_3COM_NBP5 0x3C05
#define ETYPE_3COM_NBP6 0x3C06
#define ETYPE_3COM_NBP7 0x3C07
#define ETYPE_3COM_NBP8 0x3C08
#define ETYPE_3COM_NBP9 0x3C09
#define ETYPE_3COM_NBP10 0x3C0A
#define ETYPE_IP 0x0800
#define ETYPE_ARP1 0x0806
#define ETYPE_ARP2 0x0807
#define ETYPE_RARP 0x8035
#define ETYPE_TRLR0 0x1000
#define ETYPE_TRLR1 0x1001
#define ETYPE_TRLR2 0x1002
#define ETYPE_TRLR3 0x1003
#define ETYPE_TRLR4 0x1004
#define ETYPE_TRLR5 0x1005
#define ETYPE_PUP 0x0200
#define ETYPE_PUP_ARP 0x0201
#define ETYPE_APPLETALK_ARP 0x80F3
#define ETYPE_APPLETALK_LAP 0x809B
#define ETYPE_SNMP 0x814C
//=============================================================================
// LLC (802.2) SAP constant definitions.
//=============================================================================
#define SAP_SNAP 0xAA
#define SAP_BPDU 0x42
#define SAP_IBM_NM 0xF4
#define SAP_IBM_NETBIOS 0xF0
#define SAP_SNA1 0x04
#define SAP_SNA2 0x05
#define SAP_SNA3 0x08
#define SAP_SNA4 0x0C
#define SAP_NETWARE1 0x10
#define SAP_NETWARE2 0xE0
#define SAP_NETWARE3 0xFE
#define SAP_IP 0x06
#define SAP_X25 0x7E
#define SAP_RPL1 0xF8
#define SAP_RPL2 0xFC
#define SAP_UB 0xFA
#define SAP_XNS 0x80
//=============================================================================
// Property constants
//=============================================================================
// data types
#define PROP_TYPE_VOID 0x00
#define PROP_TYPE_SUMMARY 0x01
#define PROP_TYPE_BYTE 0x02
#define PROP_TYPE_WORD 0x03
#define PROP_TYPE_DWORD 0x04
#define PROP_TYPE_LARGEINT 0x05
#define PROP_TYPE_ADDR 0x06
#define PROP_TYPE_TIME 0x07
#define PROP_TYPE_STRING 0x08
#define PROP_TYPE_IP_ADDRESS 0x09
#define PROP_TYPE_IPX_ADDRESS 0x0A
#define PROP_TYPE_BYTESWAPPED_WORD 0x0B
#define PROP_TYPE_BYTESWAPPED_DWORD 0x0C
#define PROP_TYPE_TYPED_STRING 0x0D
#define PROP_TYPE_RAW_DATA 0x0E
#define PROP_TYPE_COMMENT 0x0F
#define PROP_TYPE_SRCFRIENDLYNAME 0x10
#define PROP_TYPE_DSTFRIENDLYNAME 0x11
#define PROP_TYPE_TOKENRING_ADDRESS 0x12
#define PROP_TYPE_FDDI_ADDRESS 0x13
#define PROP_TYPE_ETHERNET_ADDRESS 0x14
#define PROP_TYPE_OBJECT_IDENTIFIER 0x15
#define PROP_TYPE_VINES_IP_ADDRESS 0x16
#define PROP_TYPE_VAR_LEN_SMALL_INT 0x17
// data qualifiers
#define PROP_QUAL_NONE 0x00
#define PROP_QUAL_RANGE 0x01
#define PROP_QUAL_SET 0x02
#define PROP_QUAL_BITFIELD 0x03
#define PROP_QUAL_LABELED_SET 0x04
#define PROP_QUAL_LABELED_BITFIELD 0x08
#define PROP_QUAL_CONST 0x09
#define PROP_QUAL_FLAGS 0x0A
#define PROP_QUAL_ARRAY 0x0B
//=============================================================================
// LARGEINT structure defined in winnt.h
//=============================================================================
//typedef struct _LARGEINT
//{
// ULONG LowLong;
// LONG HighLong;
//} LARGEINT;
//
typedef LARGE_INTEGER *LPLARGEINT;
typedef LARGE_INTEGER UNALIGNED *ULPLARGEINT;
//=============================================================================
// Range structure.
//=============================================================================
typedef struct _RANGE
{
DWORD MinValue;
DWORD MaxValue;
} RANGE;
typedef RANGE *LPRANGE;
//=============================================================================
// LABELED_BYTE structure
//=============================================================================
typedef struct _LABELED_BYTE
{
BYTE Value;
LPSTR Label;
} LABELED_BYTE;
typedef LABELED_BYTE *LPLABELED_BYTE;
//=============================================================================
// LABELED_WORD structure
//=============================================================================
typedef struct _LABELED_WORD
{
WORD Value;
LPSTR Label;
} LABELED_WORD;
typedef LABELED_WORD *LPLABELED_WORD;
//=============================================================================
// LABELED_DWORD structure
//=============================================================================
typedef struct _LABELED_DWORD
{
DWORD Value;
LPSTR Label;
} LABELED_DWORD;
typedef LABELED_DWORD *LPLABELED_DWORD;
//=============================================================================
// LABELED_LARGEINT structure
//=============================================================================
typedef struct _LABELED_LARGEINT
{
LARGE_INTEGER Value;
LPSTR Label;
} LABELED_LARGEINT;
typedef LABELED_LARGEINT *LPLABELED_LARGEINT;
//=============================================================================
// LABELED_SYSTEMTIME structure
//=============================================================================
typedef struct _LABELED_SYSTEMTIME
{
SYSTEMTIME Value;
LPSTR Label;
} LABELED_SYSTEMTIME;
typedef LABELED_SYSTEMTIME *LPLABELED_SYSTEMTIME;
//=============================================================================
// LABELED_BIT structure
//=============================================================================
typedef struct _LABELED_BIT
{
BYTE BitNumber; //... Bit number (starts at 0, upto 256 bits).
LPSTR LabelOff; //... Label for bit = 0
LPSTR LabelOn; //... Label for bit = 1
} LABELED_BIT;
typedef LABELED_BIT *LPLABELED_BIT;
//=============================================================================
// TYPED_STRING structure
//=============================================================================
#define TYPED_STRING_NORMAL 1
#define TYPED_STRING_UNICODE 2
#define TYPED_STRING_EXFLAG 1
typedef struct _TYPED_STRING
{
BYTE StringType:7; // defined above
BYTE fStringEx:1; // we are always Ex... so this is how we ExEx
LPSTR lpString; // the actual string
BYTE Byte[0]; // if instEx, then the data would go here.
} TYPED_STRING;
typedef TYPED_STRING *LPTYPED_STRING;
//=============================================================================
// OBJECT_IDENTIFIER structure
//=============================================================================
typedef struct _OBJECT_IDENTIFIER
{
DWORD Length; // Number of identifiers in the OID
LPDWORD lpIdentifier; // Array of Identifiers
} OBJECT_IDENTIFIER;
typedef OBJECT_IDENTIFIER *LPOBJECT_IDENTIFIER;
//=============================================================================
// Set structure.
//=============================================================================
typedef struct _SET
{
DWORD nEntries;
union
{
//... set of values
LPVOID lpVoidTable; // set of anything.
LPBYTE lpByteTable; // set of bytes
LPWORD lpWordTable; // set of words
LPDWORD lpDwordTable; // set of dwords
LPLARGEINT lpLargeIntTable; // set of LARGEINT structures
LPSYSTEMTIME lpSystemTimeTable; // set of SYSTEMTIME structures
//... set of labeled values
LPLABELED_BYTE lpLabeledByteTable; // set of labeled_byte structs
LPLABELED_WORD lpLabeledWordTable; // set of labeled_word structs
LPLABELED_DWORD lpLabeledDwordTable; // set of labeled_dword structs
LPLABELED_LARGEINT lpLabeledLargeIntTable; // set of Labeled_LARGEINT structs
LPLABELED_SYSTEMTIME lpLabeledSystemTimeTable; // set of labeled_systemtime structs
LPLABELED_BIT lpLabeledBit; // set of labeled_bit structs.
};
} SET;
typedef SET *LPSET;
//=============================================================================
// String table.
//=============================================================================
typedef struct _STRINGTABLE
{
DWORD nStrings; // number LPSTR in table
LPSTR String[0];
} STRINGTABLE;
typedef STRINGTABLE *LPSTRINGTABLE;
#define STRINGTABLE_SIZE sizeof(STRINGTABLE)
//=============================================================================
// RECOGNIZEDATA structure.
//
// This structure to keep track of the start of each recognized protocol.
//=============================================================================
typedef struct _RECOGNIZEDATA
{
WORD ProtocolID; //... Protocol which was recognized
WORD nProtocolOffset; //... Offset from the start of the frame of the start of this protocol.
LPVOID InstData; //... Opaque, for protocol only.
} RECOGNIZEDATA;
typedef RECOGNIZEDATA * LPRECOGNIZEDATA;
//=============================================================================
// RECOGNIZEDATATABLE structure.
//
// This structure to keep track of the start of each RECOGNIZEDATA structure
//=============================================================================
typedef struct _RECOGNIZEDATATABLE
{
WORD nRecognizeDatas; //... number of RECOGNIZEDATA structures
RECOGNIZEDATA RecognizeData[0]; //... array of RECOGNIZEDATA structures follows
} RECOGNIZEDATATABLE;
typedef RECOGNIZEDATATABLE * LPRECOGNIZEDATATABLE;
//=============================================================================
// Property information structure.
//=============================================================================
typedef struct _PROPERTYINFO
{
HPROPERTY hProperty; //... Handle to the property.
DWORD Version; //... Version of property.
LPSTR Label; //... name of property
LPSTR Comment; //... description of property
BYTE DataType; //... data type of property
BYTE DataQualifier; //... data qualifier of property
union
{
LPVOID lpExtendedInfo; //... generic pointer.
LPRANGE lpRange; //... pointer to range
LPSET lpSet; //... pointer to set
DWORD Bitmask; //... bitmask to apply
DWORD Value; //... constant value.
};
WORD FormatStringSize; //... max size to reserve for text description
LPVOID InstanceData; //... property-specific instance data.
} PROPERTYINFO;
typedef PROPERTYINFO *LPPROPERTYINFO;
#define PROPERTYINFO_SIZE sizeof(PROPERTYINFO)
//=============================================================================
// Property instance Extended structure.
//=============================================================================
typedef struct _PROPERTYINSTEX
{
WORD Length; //... length of raw data in frame
WORD LengthEx; //... number of bytes following
ULPVOID lpData; //... pointer to raw data in frame
union
{
BYTE Byte[]; //... table of bytes follows
WORD Word[]; //... table of words follows
DWORD Dword[]; //... table of Dwords follows
LARGE_INTEGER LargeInt[]; //... table of LARGEINT structures to follow
SYSTEMTIME SysTime[]; //... table of SYSTEMTIME structures follows
TYPED_STRING TypedString;//... a typed_string that may have extended data
};
} PROPERTYINSTEX;
typedef PROPERTYINSTEX *LPPROPERTYINSTEX;
#define PROPERTYINSTEX_SIZE sizeof(PROPERTYINSTEX)
typedef PROPERTYINSTEX UNALIGNED *ULPPROPERTYINSTEX;
//=============================================================================
// Property instance structure.
//=============================================================================
typedef struct _PROPERTYINST
{
LPPROPERTYINFO lpPropertyInfo; // pointer to property info
LPSTR szPropertyText; // pointer to string description
union
{
LPVOID lpData; // pointer to data
LPBYTE lpByte; // bytes
ULPWORD lpWord; // words
ULPDWORD lpDword; // dwords
ULPLARGEINT lpLargeInt; // LargeInt
ULPSYSTEMTIME lpSysTime; // pointer to SYSTEMTIME structures
LPPROPERTYINSTEX lpPropertyInstEx; // pointer to propertyinstex (if DataLength = -1)
};
WORD DataLength; // length of data, or flag for propertyinstex struct
WORD Level : 4 ; // level information ............1111
WORD HelpID : 12 ; // context ID for helpfile 111111111111....
// ---------------
// total of 16 bits == 1 WORD == DWORD ALIGNED structure
// Interpretation Flags: Flags that define attach time information to the
// interpretation of the property. For example, in RPC, the client can be
// Intel format and the server can be non-Intel format... thus the property
// database cannot describe the property at database creation time.
DWORD IFlags;
} PROPERTYINST;
typedef PROPERTYINST *LPPROPERTYINST;
#define PROPERTYINST_SIZE sizeof(PROPERTYINST)
// Flags passed at AttachPropertyInstance and AttachPropertyInstanceEx time in the IFlags field:
// flag for error condition ...............1
#define IFLAG_ERROR 0x00000001
// is the WORD or DWORD byte non-Intel format at attach time?
#define IFLAG_SWAPPED 0x00000002
// is the STRING UNICODE at attach time?
#define IFLAG_UNICODE 0x00000004
//=============================================================================
// Property instance table structure.
//=============================================================================
typedef struct _PROPERTYINSTTABLE
{
WORD nPropertyInsts; //... number of items
WORD nPropertyInstIndex; //... index to first item
} PROPERTYINSTTABLE;
typedef PROPERTYINSTTABLE *LPPROPERTYINSTTABLE;
#define PROPERTYINSTTABLE_SIZE sizeof(PROPERTYINSTTABLE)
//=============================================================================
// Property table structure.
//=============================================================================
typedef struct _PROPERTYTABLE
{
LPVOID lpFormatBuffer; //... Opaque. (PRIVATE)
DWORD FormatBufferLength; //... Opaque. (PRIVATE)
DWORD nTotalPropertyInsts; //... total number of propertyinstances in array
LPPROPERTYINST lpFirstPropertyInst; //... array of property instances
BYTE nPropertyInstTables; //... total PropertyIndexTables following
PROPERTYINSTTABLE PropertyInstTable[0]; //... array of propertyinstance index table structures
} PROPERTYTABLE;
typedef PROPERTYTABLE *LPPROPERTYTABLE;
#define PROPERTYTABLE_SIZE sizeof(PROPERTYTABLE)
//=============================================================================
// Protocol entry points.
//=============================================================================
typedef VOID (WINAPI *REGISTER)(HPROTOCOL);
typedef VOID (WINAPI *DEREGISTER)(HPROTOCOL);
typedef LPBYTE (WINAPI *RECOGNIZEFRAME)(HFRAME, LPBYTE, LPBYTE, DWORD, DWORD, HPROTOCOL, DWORD, LPDWORD, LPHPROTOCOL, LPDWORD);
typedef LPBYTE (WINAPI *ATTACHPROPERTIES)(HFRAME, LPBYTE, LPBYTE, DWORD, DWORD, HPROTOCOL, DWORD, DWORD);
typedef DWORD (WINAPI *FORMATPROPERTIES)(HFRAME, LPBYTE, LPBYTE, DWORD, LPPROPERTYINST);
//=============================================================================
// Protocol entry point structure.
//=============================================================================
typedef struct _ENTRYPOINTS
{
REGISTER Register; //... Protocol Register() entry point.
DEREGISTER Deregister; //... Protocol Deregister() entry point.
RECOGNIZEFRAME RecognizeFrame; //... Protocol RecognizeFrame() entry point.
ATTACHPROPERTIES AttachProperties; //... Protocol AttachProperties() entry point.
FORMATPROPERTIES FormatProperties; //... Protocol FormatProperties() entry point.
} ENTRYPOINTS;
typedef ENTRYPOINTS *LPENTRYPOINTS;
#define ENTRYPOINTS_SIZE sizeof(ENTRYPOINTS)
//=============================================================================
// Property database structure.
//=============================================================================
typedef struct _PROPERTYDATABASE
{
DWORD nProperties; //... Number of properties in database.
LPPROPERTYINFO PropertyInfo[0]; //... Array of property info pointers.
} PROPERTYDATABASE;
#define PROPERTYDATABASE_SIZE sizeof(PROPERTYDATABASE)
typedef PROPERTYDATABASE *LPPROPERTYDATABASE;
//=============================================================================
// Protocol info structure (PUBLIC portion of HPROTOCOL).
//=============================================================================
typedef struct _PROTOCOLINFO
{
DWORD ProtocolID; //... Prootocol ID of owning protocol.
LPPROPERTYDATABASE PropertyDatabase; //... Property database.
BYTE ProtocolName[16]; //... Protocol name.
BYTE HelpFile[16]; //... Optional helpfile name.
BYTE Comment[128]; //... Comment describing protocol.
} PROTOCOLINFO;
typedef PROTOCOLINFO *LPPROTOCOLINFO;
#define PROTOCOLINFO_SIZE sizeof(PROTOCOLINFO)
//=============================================================================
// Protocol Table.
//=============================================================================
typedef struct _PROTOCOLTABLE
{
DWORD nProtocols;
HPROTOCOL hProtocol[1]; //... This must be the last member.
} PROTOCOLTABLE;
typedef PROTOCOLTABLE *LPPROTOCOLTABLE;
#define PROTOCOLTABLE_SIZE (sizeof(PROTOCOLTABLE) - sizeof(HPROTOCOL))
#define PROTOCOLTABLE_ACTUAL_SIZE(p) GetTableSize(PROTOCOLTABLE_SIZE, (p)->nProtocols, sizeof(HPROTOCOL))
//=============================================================================
// AddressInfo structure
//=============================================================================
#define SORT_BYADDRESS 0
#define SORT_BYNAME 1
#define PERMANENT_NAME 0x00000100
typedef struct _ADDRESSINFO *LPADDRESSINFO;
typedef struct _ADDRESSINFO
{
ADDRESS Address;
BYTE Name[MAX_NAME_SIZE];
DWORD Flags;
LPVOID lpAddressInstData;
} ADDRESSINFO;
#define ADDRESSINFO_SIZE sizeof(ADDRESSINFO)
//=============================================================================
// AddressInfoTable
//=============================================================================
typedef struct _ADDRESSINFOTABLE
{
DWORD nAddressInfos;
LPADDRESSINFO lpAddressInfo[0];
} ADDRESSINFOTABLE;
typedef ADDRESSINFOTABLE *LPADDRESSINFOTABLE;
#define ADDRESSINFOTABLE_SIZE sizeof(ADDRESSINFOTABLE)
//=============================================================================
// callback procedures.
//=============================================================================
typedef DWORD (WINAPI *FILTERPROC)(HCAPTURE, HFRAME, LPVOID);
#pragma pack()
#endif
@@ -0,0 +1,6 @@
#define VER_BUILDMAJOR 4
#define VER_BUILDMINOR 0
#define VER_BUILDMM_STR "4.00"
#define BH_VER "SMS Retail 352"
#define VER_BUILDNUMBER 352
#define VER_BUILDNUMBER_STR "352"
+263
View File
@@ -0,0 +1,263 @@
// bitset standard header
#if _MSC_VER > 1000
#pragma once
#endif
#ifndef _BITSET_
#define _BITSET_
#include <istream>
#ifdef _MSC_VER
#pragma pack(push,8)
#endif /* _MSC_VER */
// TEMPLATE CLASS bitset
_STD_BEGIN
template<size_t _N> class bitset {
typedef unsigned long _Ty;
public:
typedef bool element_type;
class reference {
friend class bitset<_N>;
public:
reference& operator=(bool _X)
{_Pbs->set(_Off, _X);
return (*this); }
reference& operator=(const reference& _Bs)
{_Pbs->set(_Off, bool(_Bs));
return (*this); }
reference& flip()
{_Pbs->flip(_Off);
return (*this); }
bool operator~() const
{return (!_Pbs->test(_Off)); }
operator bool() const
{return (_Pbs->test(_Off)); }
private:
reference(bitset<_N>& _X, size_t _P)
: _Pbs(&_X), _Off(_P) {}
bitset<_N> *_Pbs;
size_t _Off;
};
_STCONS(size_t, bitset_size, _N);
bool at(size_t _P) const
{if (_N <= _P)
_Xran();
return (test(_P)); }
reference at(size_t _P)
{if (_N <= _P)
_Xran();
return (reference(*this, _P)); }
bool operator[](size_t _P) const
{return (test(_P)); }
reference operator[](size_t _P)
{return (reference(*this, _P)); }
bitset()
{_Tidy(); }
bitset(unsigned long _X)
{_Tidy();
for (size_t _P = 0; _X != 0 && _P < _N; _X >>= 1, ++_P)
if (_X & 1)
set(_P); }
explicit bitset(const string& _S, size_t _P = 0,
size_t _L = (size_t)(-1))
{size_t _I;
if (_S.size() < _P)
_Xran();
if (_S.size() - _P < _L)
_L = _S.size() - _P;
if (_N < _L)
_L = _N;
_Tidy(), _P += _L;
for (_I = 0; _I < _L; ++_I)
if (_S[--_P] == '1')
set(_I);
else if (_S[_P] != '0')
_Xinv(); }
bitset<_N>& operator&=(const bitset<_N>& _R)
{for (int _I = _Nw; 0 <= _I; --_I)
_A[_I] &= _R._W(_I);
return (*this); }
bitset<_N>& operator|=(const bitset<_N>& _R)
{for (int _I = _Nw; 0 <= _I; --_I)
_A[_I] |= _R._W(_I);
return (*this); }
bitset<_N>& operator^=(const bitset<_N>& _R)
{for (int _I = _Nw; 0 <= _I; --_I)
_A[_I] ^= _R._W(_I);
return (*this); }
bitset<_N>& operator<<=(size_t _P)
{if (_P < 0)
return (*this >>= -_P);
const int _D = _P / _Nb;
if (_D != 0)
for (int _I = _Nw; 0 <= _I; --_I)
_A[_I] = _D <= _I ? _A[_I - _D] : 0;
if ((_P %= _Nb) != 0)
{for (int _I = _Nw; 0 < _I; --_I)
_A[_I] = (_A[_I] << _P)
| (_A[_I - 1] >> (_Nb - _P));
_A[0] <<= _P, _Trim(); }
return (*this); }
bitset<_N>& operator>>=(size_t _P)
{if (_P < 0)
return (*this <<= -_P);
const int _D = _P / _Nb;
if (_D != 0)
for (int _I = 0; _I <= _Nw; ++_I)
_A[_I] = _D <= _Nw - _I ? _A[_I + _D] : 0;
if ((_P %= _Nb) != 0)
{for (int _I = 0; _I < _Nw; ++_I)
_A[_I] = (_A[_I] >> _P)
| (_A[_I + 1] << (_Nb - _P));
_A[_Nw] >>= _P; }
return (*this); }
bitset<_N>& set()
{_Tidy(~(_Ty)0);
return (*this); }
bitset<_N>& set(size_t _P, bool _X = true)
{if (_N <= _P)
_Xran();
if (_X)
_A[_P / _Nb] |= (_Ty)1 << _P % _Nb;
else
_A[_P / _Nb] &= ~((_Ty)1 << _P % _Nb);
return (*this); }
bitset<_N>& reset()
{_Tidy();
return (*this); }
bitset<_N>& reset(size_t _P)
{return (set(_P, 0)); }
bitset<_N> operator~() const
{return (bitset<_N>(*this).flip()); }
bitset<_N>& flip()
{for (int _I = _Nw; 0 <= _I; --_I)
_A[_I] = ~_A[_I];
_Trim();
return (*this); }
bitset<_N>& flip(size_t _P)
{if (_N <= _P)
_Xran();
_A[_P / _Nb] ^= (_Ty)1 << _P % _Nb;
return (*this); }
unsigned long to_ulong() const
{enum {_Assertion = 1 /
(sizeof (unsigned long) % sizeof (_Ty) == 0)};
int _I = _Nw;
for (; sizeof (unsigned long) / sizeof (_Ty) <= _I; --_I)
if (_A[_I] != 0)
_Xoflo();
unsigned long _V = _A[_I];
for (; 0 <= --_I; )
_V = _V << _Nb | _A[_I];
return (_V); }
string to_string() const
{string _S;
_S.reserve(_N);
for (size_t _P = _N; 0 < _P; )
_S += test(--_P) ? '1' : '0';
return (_S); }
size_t count() const
{size_t _V = 0;
for (int _I = _Nw; 0 <= _I; --_I)
for (_Ty _X = _A[_I]; _X != 0; _X >>= 4)
_V += "\0\1\1\2\1\2\2\3"
"\1\2\2\3\2\3\3\4"[_X & 0xF];
return (_V); }
size_t size() const
{return (_N); }
bool operator==(const bitset<_N>& _R) const
{for (int _I = _Nw; 0 <= _I; --_I)
if (_A[_I] != _R._W(_I))
return (false);
return (true); }
bool operator!=(const bitset<_N>& _R) const
{return (!(*this == _R)); }
bool test(size_t _P) const
{if (_N <= _P)
_Xran();
return ((_A[_P / _Nb] & ((_Ty)1 << _P % _Nb)) != 0); }
bool any() const
{for (int _I = _Nw; 0 <= _I; --_I)
if (_A[_I] != 0)
return (true);
return (false); }
bool none() const
{return (!any()); }
bitset<_N> operator<<(size_t _R) const
{return (bitset<_N>(*this) <<= _R); }
bitset<_N> operator>>(size_t _R) const
{return (bitset<_N>(*this) >>= _R); }
friend bitset<_N> operator&(const bitset<_N>& _L,
const bitset<_N>& _R)
{return (bitset<_N>(_L) &= _R); }
friend bitset<_N> operator|(const bitset<_N>& _L,
const bitset<_N>& _R)
{return (bitset<_N>(_L) |= _R); }
friend bitset<_N> operator^(const bitset<_N>& _L,
const bitset<_N>& _R)
{return (bitset<_N>(_L) ^= _R); }
friend ostream& operator<<(ostream& _O, const bitset<_N>& _R)
{for (size_t _P = _N; 0 < _P; )
_O << (_R.test(--_P) ? '1' : '0');
return (_O); }
// TEMPLATE operator>>
friend istream& operator>>(istream& _I, bitset<_N>& _R)
{ios_base::iostate _St = ios_base::goodbit;
bool _Chg = false;
string _X;
const istream::sentry _Ok(_I);
if (_Ok)
{_TRY_IO_BEGIN
int _C = _I.rdbuf()->sgetc();
for (size_t _M = _R.size(); 0 < _M;
_C = _I.rdbuf()->snextc(), --_M)
{if (_C == EOF)
{_St |= ios_base::eofbit;
break; }
else if (_C != '0' && _C != '1')
break;
else if (_X.max_size() <= _X.size())
{_St |= ios_base::failbit;
break; }
else
_X.append(1, (char)_C), _Chg = true; }
_CATCH_IO_(_I); }
if (!_Chg)
_St |= ios_base::failbit;
_I.setstate(_St);
_R = bitset<_N>(_X);
return (_I); }
_Ty _W(size_t _I) const
{return (_A[_I]); }
private:
enum {_Nb = CHAR_BIT * sizeof (_Ty),
_Nw = _N == 0 ? 0 : (_N - 1) / _Nb};
void _Tidy(_Ty _X = 0)
{for (int _I = _Nw; 0 <= _I; --_I)
_A[_I] = _X;
if (_X != 0)
_Trim(); }
void _Trim()
{if (_N % _Nb != 0)
_A[_Nw] &= ((_Ty)1 << _N % _Nb) - 1; }
void _Xinv() const
{_THROW(invalid_argument, "invalid bitset<N> char"); }
void _Xoflo() const
{_THROW(overflow_error,
"bitset<N> conversion overflow"); }
void _Xran() const
{_THROW(out_of_range, "invalid bitset<N> position"); }
_Ty _A[_Nw + 1];
};
_STD_END
#ifdef _MSC_VER
#pragma pack(pop)
#endif /* _MSC_VER */
#endif /* _BITSET */
/*
* Copyright (c) 1994 by P.J. Plauger. ALL RIGHTS RESERVED.
* Consult your license regarding permissions and restrictions.
*/
@@ -0,0 +1,645 @@
#----------------------------------------------------------------------------
#
# Description:
# Make File Header for BackOffice Software Development Kit
#
# Copyright:
# Copyright (C) Microsoft Corp. 1986-1997. All Rights Reserved.
#
#----------------------------------------------------------------------------
!ifndef BASEMAKE_INCLUDED # Prevent multiple inclusions
BASEMAKE_INCLUDED = 1
#*********************************************
#
# Parameter Checking and Defaults
#
#*********************************************
!ifndef Proj
! ERROR Component name (Proj) has not been defined.
!endif
!ifndef INCLUDE
! ERROR INCLUDE variable is empty; must include at least system include directory
!endif
!ifndef LIB
! ERROR LIB variable is empty; must include at least system lib directory
!endif
!if defined(clean)
$(Proj): Clean
!else
$(Proj): All
!endif
!if defined(nodebug)
BLDTYPE=Retail
!endif
!if "$(BLDTYPE)" == "Retail" | "$(BLDTYPE)" == "RETAIL" | "$(BLDTYPE)" == "retail" | "$(BLDTYPE)" == "RTL" | "$(BLDTYPE)" == "rtl"
BLDTYPE1=Retail
!else if "$(BLDTYPE)" == "Profile" | "$(BLDTYPE)" == "PROFILE" | "$(BLDTYPE)" == "profile"
BLDTYPE1=Profile
!else if "$(BLDTYPE)" == "Debug" | "$(BLDTYPE)" == "DEBUG" | "$(BLDTYPE)" == "debug" | "$(BLDTYPE)" == "DBG" | "$(BLDTYPE)" == "dbg"
BLDTYPE1=Debug
!else ifndef BLDTYPE
BLDTYPE1=Debug
!else
! ERROR BLDTYPE must be either Retail, Profile or Debug.
!endif
!if "$(BLDTYPE1)" == "Retail"
nodebug=1
!endif
!ifndef PLATFORM
PLATFORM=Win32
!endif
!ifndef CALL
CALL=C
!endif
!ifndef PACK
PACK=YES
!endif
# Default to logging to stdout.
!ifndef LOG
LOG=NO
!endif
!ifndef WARNING_LEVEL
WARNING_LEVEL=3
!endif
!ifndef CPU
CPU=i386
!ifndef PROCESSOR_ARCHITECTURE
#!ERROR CPU and PROCESSOR_ARCHITECTURE variables are empty; at least one must be defined
!endif
CPU=$(PROCESSOR_ARCHITECTURE)
!if "$(CPU)"=="x86" | "$(CPU)"=="X86"
CPU = i386
!endif
!endif
!ifndef APPVER
APPVER=4.0
!endif
!ifndef USE_EXCHANGE
!include <win32.mak>
!endif
# Save build args for any recursive nmakes
BLDARGS= BLDTYPE=$(BLDTYPE) PLATFORM=$(PLATFORM) LOG=$(LOG) CPU=$(CPU)
#*********************************************
#
# Paths
#
#*********************************************
!ifndef BKOFFICE
!ifdef PROJROOT
BKOFFICE=$(PROJROOT)\ # must add trailing backslash
!else
BKOFFICE=\BkOffice\ # assume a reasonable default
!endif
!endif
!ifdef MAKEDIRS
MkDest=
!include $(MAKEDIRS)
!else
ResDir=.
ObjDir=.\$(PLATFORM)\$(BLDTYPE1)
IncDir=$(BKOFFICE)Include
LibDir=$(BKOFFICE)Lib
INCLUDE=$(ObjDir);$(IncDir);$(INCLUDE);
LIB=$(LibDir);$(LIB);
# Win95 doesn't support "&" on command line
MkDest=@for %d in ($(PLATFORM) $(ObjDir)) do $(COMSPEC) /c if not exist %d md %d
!endif
#*********************************************
#
# Tools
#
#*********************************************
MAKEEXE = nmake
IMPLIB = lib
CC = cl
LIBU = lib
LINK = link
RC = rc
MC = mc
HC = start /wait hcrtf
#*********************************************
#
# Flags
#
#*********************************************
# CL is for all C and C++ files
# -WX Warnings as errors
# -J char becomes unsigned char
#
CL=$(cflags) -c -W$(WARNING_LEVEL) -J -Fo$@ /nologo $(CL)
# LFLAGS is for all links
#LFLAGS=-NOLOGO -NODEFAULTLIB -machine:$(CPU) -out:$@ -INCREMENTAL:NO -PDB:NONE $(LFLAGS)
#*************************************************************************
# CHANGED FOR PDCSDK
#*************************************************************************
LFLAGS=-NOLOGO /NODEFAULTLIB:LIBC -machine:$(CPU) -out:$@ -INCREMENTAL:NO -PDB:NONE $(LFLAGS)
# DLLFLAGS is for linking DLLs
DLLFLAGS=-DLL -map:$(ObjDir)\$(@B).Map $(DLLFLAGS)
# LIBFLAGS is for making libraries
LIBFLAGS=-NOLOGO -MACHINE:$(CPU) -out:$@ $(LIBFLAGS)
# RFLAGS is for Windows resources
RFLAGS= -I$(ResDir) -fo$@ -DWIN32 $(noansi) -r -D_WIN32 $(RFLAGS)
# MFLAGS is for the message compiler
MFLAGS=-v -c -s -h $(ObjDir) -r $(ObjDir) -x $(ObjDir) $(MFLAGS)
# MRFLAGS is for the resource compiler when used after the message compiler
MRFLAGS=-l 409 -r -x -i$(ObjDir) $(MRFLAGS)
# HFLAGS is for the help compiler
HFLAGS=-xn
#---------------------------------------------
# Calling convention Flag
#---------------------------------------------
!if "$(CALL)"=="PASCAL"
CL=-Gc $(CL)
!endif
#---------------------------------------------
# Function Packaging Flag
#---------------------------------------------
!if "$(PACK)" == "YES"
CL=-Gy $(CL)
cDefines=-Gy $(cDefines)
!endif
#---------------------------------------------
# Output Redirection
#---------------------------------------------
!if "$(LOG)" == "NO"
LogCmd=
!else
LogCmd= >> $(ObjDir)\$(Proj).Out
!endif
#---------------------------------------------
# Optimization Flags
#---------------------------------------------
!if "$(BLDTYPE1)" == "Retail"
CL=-O2 $(CL)
!else if "$(BLDTYPE1)" == "Profile"
CL=-Od -Z7 -Gh $(CL)
!else
CL=-Od -Z7 $(CL)
!endif
#---------------------------------------------
# PLATFORM specific Flags
#---------------------------------------------
!if "$(CPU)" == "I386"
CL = $(CL) -D_X86_=1
scall = -Gz
lflags = $(lflags) -align:0x1000
!endif
!if "$(CPU)" == "MIPS"
CL = $(CL) -D_MIPS_=1
scall =
!endif
!if "$(CPU)" == "PPC"
CL = $(CL) -D_PPC_=1
scall =
lflags = $(lflags) -ignore:4078
!endif
!if "$(CPU)" == "ALPHA"
CL = $(CL) -D_ALPHA_=1
scall =
!endif
#---------------------------------------------
# Windows version
#---------------------------------------------
!if "$(APPVER)" == "4.0"
CL = $(CL) -DWINVER=0x0400
rflags=$(rflags) -DWINVER=0x0400
!endif
#---------------------------------------------
# Additional MFC Flags
#---------------------------------------------
!ifdef Use_MFC
!if "$(BLDTYPE1)"=="Debug"
CL= $(CL) /D_DEBUG
!endif
!ifdef crtdll # Use DLL CRT? (which is multithreaded)
crtflags = -MD$(DbgLibFlag) $(crtflags)
!elseif defined(crtst) && !defined(crtflags) # use Single Threaded CRT?
crtflags = -ML$(DbgLibFlag) $(crtflags)
!elseif defined(crtmt) # use Multithreaded CRT?
crtflags = -MT$(DbgLibFlag) $(crtflags)
!else # default to crtdll
crtflags = -MD$(DbgLibFlag) $(crtflags)
!endif # ifdef crtdll/else crtst/crtmt/else
!endif
#---------------------------------------------
# Build Type Flags (Retail/Debug)
#---------------------------------------------
!if "$(BLDTYPE1)"=="Retail"
CL=-DSHIP $(CL)
LFLAGS = $(LFLAGS) -RELEASE
!else if "$(BLDTYPE1)"=="Profile"
CL=-DDEBUG -DTEST -DPROFILE $(CL)
LFLAGS = $(LFLAGS) -DEBUG:mapped,partial -DEBUGTYPE:coff -PROFILE
libs = $(libs) CAP.Lib
!else
CL=-DDEBUG -DTEST $(CL)
LFLAGS = $(LFLAGS) -debug:full -debugtype:cv
!endif
#---------------------------------------------
# Determine CRT Flags
#---------------------------------------------
!ifdef crtdll # Use DLL CRT? (which is multithreaded)
crtflags = -DWIN32 $(noansi) -D_WIN32 -D_MT -D_DLL
!elseif defined(crtst) && !defined(crtflags) # use Single Threaded CRT?
crtflags = -DWIN32 $(noansi) -D_WIN32
!elseif defined(crtmt) # use Multithreaded CRT?
crtflags = -DWIN32 $(noansi) -D_WIN32 -D_MT
!else # default to crtdll
crtflags = -DWIN32 $(noansi) -D_WIN32 -D_MT -D_DLL
!endif # ifdef crtdll/else crtst/crtmt/else
#---------------------------------------------
# Determine app type Flags (console, gui, or DLL)
#---------------------------------------------
!if defined(console) # console app
!if !defined(unicode)
linkflags=$(linkflags) -subsystem:console -entry:mainCRTStartup
!else
linkflags=$(linkflags) -subsystem:console -entry:mainCRTStartupW
!endif #unicode
!elseif !defined(dll) # not a dll, default to gui app
!if !defined(unicode)
linkflags=$(linkflags) -subsystem:windows -entry:WinMainCRTStartup
!else
linkflags=$(linkflags) -subsystem:windows -entry:WinMainCRTStartupW
!endif #unicode
!endif # ifdef console/else
#*********************************************
#
# Libraries
#
#*********************************************
!if "$(BLDTYPE1)"=="Retail"
DbgLibFlag =
!else
DbgLibFlag = d
!endif
#---------------------------------------------
# Back Office SDK specific
#---------------------------------------------
!ifdef USE_SNA
libs=$(libs) fmistr32.Lib ihvLink.Lib snacli.Lib wappc32.Lib wcpic32.Lib
libs=$(libs) wincsv32.Lib winrui32.Lib winsli32.Lib
!endif # USE_SNA
!ifdef USE_SQL
libs=$(libs) ntwdbLib.Lib
!endif # USE_SQL
!ifdef USE_ODS
libs=$(libs) opends60.Lib
!endif # USE_ODS
!ifdef USE_DTC
libs=$(libs) XOleHlp.Lib
!endif # USE_ODS
!ifdef USE_ODBC
libs=$(libs) odbc32.Lib odbccp32.Lib
!endif # USE_ODS
!if defined(USE_MSM) || defined(USE_SMS)
libs=$(libs) smsapi.Lib objectty.Lib
!endif # USE_MSM || USE_SMS
!ifdef USE_NETMON
libs=$(libs) bhmon.Lib bhsupp.Lib filter.Lib friendly.Lib
libs=$(libs) hexedit.Lib nal.Lib nmapi.Lib
libs=$(libs) parser.Lib slbs.Lib toolbar.Lib
!endif # USE_NETMON
!ifdef USE_EXCHANGE
! ifndef Building_ExchSDK
libs=ExchSDK$(DbgLibFlag).Lib $(libs)
! endif # Building_ExchSDK
# Note: when using MFC for Exchange Admin
# extension dlls they must be statically linked to MFC.
!ifdef Use_MFC
CL= $(CL) /GX /DSTRICT /DWIN32 /D_WINDOWS /D_MBCS /D_WINDLL
CL= $(CL) /D_USRDLL -D_AFX_NO_BSTR_SUPPORT /D_AFXDLL
!endif # Use_MFC
libs=$(libs) Mapi32.Lib Uuid.Lib
!if "$(WARNING_LEVEL)" != "4"
CL= $(CL) -WX
!endif
DLLFLAGS = $(DLLFLAGS) -def:$(@B).def
!endif # USE_EXCHANGE
#---------------------------------------------
# Determine CRT Libraries
#---------------------------------------------
libc = libc$(DbgLibFlag).Lib oldnames.Lib
libcmt = libcmt$(DbgLibFlag).Lib oldnames.Lib
libcdll = msvcrt$(DbgLibFlag).Lib oldnames.Lib
!ifdef crtdll # Use DLL CRT?
libcrt=$(libcdll)
!elseif defined(crtst) && !defined(crtflags) # use Single Threaded CRT?
libcrt=$(libc)
!elseif defined(crtmt) # use Multithreaded CRT?
libcrt=$(libcmt)
!else # default to crtdll
libcrt=$(libcdll)
!endif # endif crtdll/else crtst/crtmt/else
#---------------------------------------------
# Determine app type libraries (console, gui, or DLL)
#---------------------------------------------
!ifdef dll # is this a DLL?
linklibs=$(libs) kernel32.Lib advapi32.Lib user32.Lib gdi32.Lib comctl32.Lib comdlg32.Lib ole32.Lib winspool.Lib version.Lib
!elseif defined(console) # not a DLL, perhaps a console app
linklibs=$(libs) kernel32.Lib advapi32.Lib user32.Lib ole32.Lib version.Lib
!else # default to gui app
linklibs=$(libs) kernel32.Lib $(optlibs) advapi32.Lib user32.Lib gdi32.Lib comdlg32.Lib ole32.Lib winspool.Lib version.Lib
!endif # ifdef dll/else console/else
#LinkLibs = $(LibList) $(linklibs) $(libcrt)
# do not specify CRT libs if using MFC, let MFC fix this up in the default libs
!ifdef Use_MFC
LinkLibs = $(LibList) $(linklibs)
!else
LinkLibs = $(LibList) $(linklibs) $(libcrt)
!endif
#if necessary, force MSVCRT to be included in lib list
!ifdef Use_MSCRT
LinkLibs = $(LinkLibs) $(libcrt)
!endif
!if "$(BLDTYPE1)" == "Profile"
LinkLibs = $(LinkLibs) cap.Lib
!endif
#---------------------------------------------
# Additional MFC Libraries
#---------------------------------------------
# Note that linking order is important when using MFC!
!ifdef Use_MFC
#*************************************************************************
# CHANGED FOR PDCSDK
#*************************************************************************
#linklibs = mfcs40$(DbgLibFlag).Lib mfc40$(DbgLibFlag).Lib $(linklibs)
!endif
#*********************************************
#
# Inference Rules
#
#*********************************************
.SUFFIXES: .c .cpp .Obj .def .Lib .Dll .exe .mc .rc .Res .exp .bin .hpj .srl .ini .pdb
# C Targets
.c{$(ObjDir)\}.Obj:
$(MkDest)
!if "$(LOG)"=="YES"
@echo $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
!endif
$(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
# C++ Targets
.cpp{$(ObjDir)\}.Obj:
$(MkDest)
!if "$(LOG)"=="YES"
@echo $(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
!endif
$(CC) $(CL) $(crtflags) $(cDefines) $< $(LogCmd)
# Resource Targets from .RC files
{$(ResDir)\}.rc{$(ObjDir)\}.Res:
$(MkDest)
!if "$(LOG)"=="YES"
@echo $(RC) $(RFLAGS) $(ResDir)\$(@B).rc $(LogCmd)
!endif
$(RC) $(RFLAGS) $(ResDir)\$(@B).rc $(LogCmd)
# Resource Targets from .MC files
.mc{$(ObjDir)\}.Res:
$(MkDest)
!if "$(LOG)"=="YES"
@echo $(MC) $(MFLAGS) $< $(LogCmd)
!endif
$(MC) $(MFLAGS) $< $(LogCmd)
!if "$(LOG)"=="YES"
@echo $(RC) $(MRFLAGS) -fo$@ $(ObjDir)\$(@B).rc $(LogCmd)
!endif
$(RC) $(MRFLAGS) -fo$@ $(ObjDir)\$(@B).rc $(LogCmd)
# Import Libraries
.def{$(ObjDir)\}.Lib:
!if "$(LOG)"=="YES"
@echo $(IMPLIB) -NOLOGO -MACHINE:$(CPU) -DEF:$(@B).DEF -OUT:$@ $(LogCmd)
!endif
$(IMPLIB) -NOLOGO -MACHINE:$(CPU) -DEF:$(@B).DEF -OUT:$@ $(LogCmd)
set copycmd=$(COPYCMD)/y
xcopy $@ $(LibDir)\ $(LogCmd)
.def{$(ObjDir)\}.exp:
!if "$(LOG)"=="YES"
@echo $(IMPLIB) -NOLOGO -MACHINE:$(CPU) -DEF:$(@B).DEF -OUT:$(@R).Lib $(LogCmd)
!endif
$(IMPLIB) -NOLOGO -MACHINE:$(CPU) -DEF:$(@B).DEF -OUT:$(@R).Lib $(LogCmd)
# Static Libraries
{$(ObjDir)\}.Obj{$(ObjDir)\}.Lib:
!if "$(LOG)"=="YES"
@echo $(LIBU) $(LIBFLAGS) $** $(LogCmd)
!endif
$(LIBU) $(LIBFLAGS) $** $(LogCmd)
!if "$(LOG)"=="YES"
@echo xcopy $@ $(LibDir) $(LogCmd)
!endif
set copycmd=$(COPYCMD)/y
xcopy $@ $(LibDir)\ $(LogCmd)
# DLLs
{$(ObjDir)\}.Obj{$(ObjDir)\}.Dll:
@echo $** > $(ObjDir)\objfiles.lst
@echo $(LinkLibs) > $(ObjDir)\libfiles.lst
!if "$(LOG)"=="YES"
@echo $(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
!endif
$(LINK) $(LFLAGS) $(DLLFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
!if "$(LOG)"=="YES"
@echo xcopy $(@R).Lib $(LibDir) $(LogCmd)
!endif
set copycmd=$(COPYCMD)/y
-xcopy $(@R).Lib $(LibDir)\ $(LogCmd)
# BINs
{$(ObjDir)\}.Obj{$(ObjDir)\}.bin:
@echo $(LinkLibs) > $(ObjDir)\libfiles.lst
!if "$(LOG)"=="YES"
@echo $(LINK) $(LFLAGS) $(linkflags) $** @$(ObjDir)\libfiles.lst $(LogCmd)
!endif
$(LINK) $(LFLAGS) $(linkflags) $** @$(ObjDir)\libfiles.lst $(LogCmd)
# EXEs
{$(ObjDir)\}.Obj{$(ObjDir)\}.exe:
@echo $** > $(ObjDir)\objfiles.lst
@echo $(LinkLibs) > $(ObjDir)\libfiles.lst
!if "$(LOG)"=="YES"
@echo $(LINK) $(LFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
!endif
$(LINK) $(LFLAGS) $(linkflags) @$(ObjDir)\objfiles.lst @$(ObjDir)\libfiles.lst $(LogCmd)
# Helpfiles
.hpj{$(ObjDir)\}.hlp:
$(MkDest)
!if "$(LOG)"=="YES"
@echo $(HC) $(HFLAGS) $(@B).Hpj
!endif
$(HC) $(HFLAGS) $(@B).Hpj
!if "$(LOG)"=="YES"
@echo xcopy $(@F) $(ObjDir)
!endif
set copycmd=$(COPYCMD)/y
-xcopy $(@F) $(ObjDir) $(LogCmd)
#*********************************************
#
# Make Targets
#
#*********************************************
#---------------------------------------------
# List Output Files
#---------------------------------------------
ListDir:
dir $(ObjDir)
#---------------------------------------------
# Display Output Listing File
#---------------------------------------------
!ifndef ERRVIEW
ERRVIEW=start notepad.exe
!endif
ListOut:
$(ERRVIEW) $(ObjDir)\$(Proj).out
#---------------------------------------------
# Delete Output Listing File
#---------------------------------------------
DelOut:
del $(ObjDir)\$(Proj).out
#---------------------------------------------
# Clean Output Directories
#---------------------------------------------
clean:
$(MkDest)
!if "$(OS)" == "Windows_NT"
-del /q $(ObjDir)\*.Obj \
$(ObjDir)\*.out \
$(ObjDir)\*.h \
$(ObjDir)\*.dbg \
$(ObjDir)\*.Lib \
$(ObjDir)\*.exe \
$(ObjDir)\*.Dll \
$(ObjDir)\*.Map \
$(ObjDir)\*.Res \
$(ObjDir)\*.rc \
$(ObjDir)\*.bin \
$(ObjDir)\*.lst \
$(ObjDir)\*.blt \
$(ObjDir)\*.hlp \
$(ObjDir)\*.srl \
$(ObjDir)\*.ini \
$(ObjDir)\*.pdb \
$(ObjDir)\*.exp >NUL 2>NUL
!else # Win95 doesn't support "2>" on command line, multiple files on a Del command, or /q
-erase $(ObjDir)\*.Obj >NUL
-erase $(ObjDir)\*.out >NUL
-erase $(ObjDir)\*.h >NUL
-erase $(ObjDir)\*.dbg >NUL
-erase $(ObjDir)\*.Lib >NUL
-erase $(ObjDir)\*.exe >NUL
-erase $(ObjDir)\*.Dll >NUL
-erase $(ObjDir)\*.Map >NUL
-erase $(ObjDir)\*.Res >NUL
-erase $(ObjDir)\*.rc >NUL
-erase $(ObjDir)\*.bin >NUL
-erase $(ObjDir)\*.lst >NUL
-erase $(ObjDir)\*.blt >NUL
-erase $(ObjDir)\*.hlp >NUL
-erase $(ObjDir)\*.srl >NUL
-erase $(ObjDir)\*.ini >NUL
-erase $(ObjDir)\*.pdb >NUL
-erase $(ObjDir)\*.exp >NUL
!endif # OS == Windows_NT
!endif # BASEMAKE_INCLUDED

@@ -0,0 +1,12 @@
#ifndef __SDPBLB_ERROR_CODES__
#define __SDPBLB_ERROR_CODES__
#include <sdperr.h>
// First four bits - SEVERITY(11), CUSTOMER FLAG(1), RESERVED(0)
#define SDPBLB_CONF_BLOB_DESTROYED 0xe0000300
#endif // __SDPBLB_ERROR_CODES__
@@ -0,0 +1,78 @@
////////////////////////////////////////////////////////////////////
//
// BPCPRI.H
//
// common bpc tuner priority definitions
//
// Copyright (c) 1997 Microsoft Corp. All Rights Reserved.
//
////////////////////////////////////////////////////////////////////
#if _MSC_VER > 1000
#pragma once
#endif
#ifndef BPCPRI_H
#define BPCPRI_H
#include <limits.h>
typedef enum BPC_PRIORITY {
BPCPRI_MAX_PRI = LONG_MAX,
// since the current owner wins a tie, if you really need
// exclusive access use max pri and nobody can preempt you.
BPCPRI_EXCLUSIVE = BPCPRI_MAX_PRI,
// get ppv details for making a purchase with user permission to
// interrupt everything
BPCPRI_PPV_INT_ALL = 11000,
// viewing after the user has confirmed that they wish to interrupt a
// recording
BPCPRI_VIEW_INT_RECORD = 10000,
// normal recording. this is higher then viewing so that someone
// walking up to the tv who is unaware that a recording is in
// progress will get a notification before they interrupt the recording
// and so that a scheduled recording will start and run if a user
// has gone away leaving the tv viewer running
BPCPRI_RECORD = 9000,
// attempt to get ppv details for making a purchase with user
// permission to interrupt viewing but not recording
BPCPRI_PPV_DETAILS_INT_VIEW = 8000,
//normal tv viewing
BPCPRI_VIEW = 7000,
// attempt to get ppv details for a purchase but don't
// interrupting viewing or recording
BPCPRI_PPV_DETAILS = 6000,
// download program guide database information
BPCPRI_EPG_LOADER = 5000,
// msbdn data reception (webcast, etc.)
BPCPRI_DATA_RECV = 4000,
// msbdn announcement listener
BPCPRI_ANNOUNCE = 3000,
// leave tv viewing with power off. apps should go to this priority
// when they receive notification that their monitor is
// powered off. this allows the best instant on response when
// no background downloads are occurring but allows data downloads and
// epg downloads to interrupt viewing
BPCPRI_POWER_OFF = 2000,
// idle ocx priority when no input device selected
BPCPRI_IDLE = 1000,
BPCPRI_NONE = 0,
BPCPRI_MIN = BPCPRI_NONE,
} BPC_PRIORITY;
#endif
// end of file - bpcpri.h

@@ -0,0 +1,854 @@
#if _MSC_VER > 1000
#pragma once
#endif
#ifndef BPCREG_H
#define BPCREG_H
#include <tchar.h>
//-----------------------------------------------------------------------------
//
// Registry usage:
//
// HKLM = HKEY_LOCAL_MACHINE
// HKCU = HKEY_CURRENT_USER
//
// HKLM\Software\Microsoft\TV System Services
//
// REG_SZ (Default) - Not used.
// REG_SZ ProductDir - Root directory for BPC software
// REG_SZ DBFile - Full path to tss.mdb
// REG_SZ DBReplacementFile - Full path to the empty replacement tss.mdb
// REG_SZ EPGDBFile - Full path to epg.mdb
// REG_SZ SystemDB - Full path to tss.mdw
// REG_SZ AMFilter - Full path to dss.grf
//
// HKLM\Software\Microsoft\TV System Services\Tuning Spaces
//
// REG_SZ (Default) - Not used.
//
// HKLM\Software\Microsoft\TV System Services\Tuning Spaces\<iTuningSpace>
//
// REG_SZ (Default) - Not used.
// REG_SZ Name - UNDONE
// REG_SZ Description - UNDONE
// REG_SZ Loader - UNDONE
// REG_SZ MinChannel - UNDONE
// REG_SZ MaxChannel - UNDONE
// REG_SZ Devices - UNDONE
// REG_SZ MediaType - UNDONE
//
// HKLM\Software\Microsoft\TV System Services\Tuning Spaces\1
//
// REG_SZ Messages - UNDONE
// REG_SZ History - UNDONE
//
// HKLM\Software\Microsoft\TV System Services\EPG Loaders
//
// REG_SZ (Default) - Not used.
// REG_SZ LastAttempt - UNDONE
// REG_BINARY LastAttemptTime - UNDONE
// REG_SZ LastCompletion - UNDONE
// REG_BINARY LastCompletionTime - UNDONE
// REG_DWORD LastCompletionResult - UNDONE
// REG_BINARY EngineeringByte - UNDONE
//
// HKLM\Software\Microsoft\TV System Services\EPG Loaders\<guid>
//
// REG_SZ (Default) - Not used.
// REG_SZ Name - UNDONE
// REG_SZ TuningID - UNDONE
// REG_BINARY LastAttemptTime - UNDONE
// REG_BINARY LastCompletionTime - UNDONE
// REG_DWORD LastCompletionResult - UNDONE
//
// HKCU\Software\Microsoft\TV System Services
//
// REG_SZ (Default) - Not used.
//
// HKCU\Software\Microsoft\Microsoft TVExplorer
//
// REG_SZ (Default) - Not used.
//
// HKCU\Software\Microsoft\Microsoft TVExplorer\RemoteKeys
//
// REG_SZ (Default) - Not used.
//
// HKCU\Software\Microsoft\Microsoft TVExplorer\RemoteKeys\CommandLines
//
// REG_SZ (Default) - Not used.
// REG_SZ Guide - UNDONE
// REG_SZ TV - UNDONE
//
// HKCU\Software\Microsoft\Microsoft TVExplorer\RemoteKeys\WakeupKeys
//
// REG_SZ (Default) - Not used.
// REG_SZ Guide - UNDONE
// REG_SZ TV - UNDONE
//
// HKCU\AppEvents\Schemes\Apps\TVExplorer
//
// REG_SZ (Default) - "TV Explorer"
//
//-----------------------------------------------------------------------------
extern const LPCTSTR g_strBaseRegKey;
extern const LPCTSTR g_strProductDir;
extern const LPCTSTR g_strDBFile;
extern const LPCTSTR g_strDBReplacementFile;
extern const LPCTSTR g_strEPGDBFile;
extern const LPCTSTR g_strDefVBITS;
extern const LPCTSTR g_strDefVBIChan;
extern const LPCTSTR g_strSysFile;
extern const LPCTSTR g_strAMFilter;
extern const LPCTSTR g_strAMFClass;
extern const LPCTSTR g_strTSInputType;
extern const LPCTSTR g_strCountryCode;
extern const LPCTSTR g_strVolume;
extern const LPCTSTR g_strBalance;
extern const LPCTSTR g_strAudioPin;
extern const LPCTSTR g_strTVXRegKey;
extern const LPCTSTR g_strNTSC;
extern const LPCTSTR g_strDistanceViewing;
extern const LPCTSTR g_strConfigRegKey;
extern const LPCTSTR g_strConfigLastPage;
extern const LPCTSTR g_strTuningSpaceRegKey;
extern const LPCTSTR g_strTuningSpaceName;
extern const LPCTSTR g_strCurTVTuningSpace;
extern const LPCTSTR g_strDSSTuningSpaceRegKey;
extern const LPCTSTR g_strLCIDToSTYPE;
extern const LPCTSTR g_strCAProviderRegKey;
extern const LPCTSTR g_strCAProviderName;
extern const LPCTSTR g_strCAProviderDesc;
extern const LPCTSTR g_strVenPrefix;
extern const LPCTSTR g_strDevPrefix;
extern const LPCTSTR g_strEPGRegKey;
extern const LPCTSTR g_strEPGLoadersRegKey;
extern const LPCTSTR g_strEPGLoaderAttempt;
extern const LPCTSTR g_strEPGLoaderAttemptTime;
extern const LPCTSTR g_strEPGLoaderCompletion;
extern const LPCTSTR g_strEPGLoaderCompletionTime;
extern const LPCTSTR g_strEPGLoaderCompletionResult;
extern const LPCTSTR g_strEPGLoaderName;
extern const LPCTSTR g_strEPGLoaderTuningID;
extern const LPCTSTR g_strLoaderPostalCode;
extern const LPCTSTR g_strLoaderReadPrefix;
extern const LPCTSTR g_strLoaderWritePrefix;
extern const LPCTSTR g_strLoaderReadFile;
extern const LPCTSTR g_strDTVLoaderCSSByte;
extern const LPCTSTR g_strSSLoaderRegionID;
extern const LPCTSTR g_strSSLoaderChannel;
extern const LPCTSTR g_strSSLoaderLine;
extern const LPCTSTR g_strSSLoaderScanReturnCode;
extern const LPCTSTR g_strSSLoaderListenReturnCode;
extern const LPCTSTR g_strSSLoaderListenReturnCodeCount;
#ifdef _DEBUG
extern const LPCTSTR g_strDEBUG;
extern const LPCTSTR g_strTrace;
#endif
//-----------------------------------------------------------------------------
// OpenRegKey
//
// Opens a registry HKEY. There are several overloads of this function
// that basically just provide defaults for the arguments to this function.
//
// Please use the overload that defaults as much as possible.
//
// The registry key is a combination of the following four parts.
//
// HKEY hkeyRoot = Optional root hkey.
// Default: HKEY_LOCAL_MACHINE
//
// LPCTSTR szKey = Optional key to be set.
// Default: g_strBaseRegKey
//
// LPCTSTR szSubKey1
// LPCTSTR szSubKey2 = Optional sub keys that are concatenated after
// szKey to form the full key.
// Backward slashes are added as necessary.
//
// Default: NULL
//
// Note: if only one or two strings are specified they are assumed to be
// szSubKey1 and szSubKey2.
// i.e. szKey defaults to g_strBaseRegKey before szSubKey1 and
// szSubKey2 default to NULL.
//
// If szKey, szSubKey1, and szSubKey2 are NULL then this will open
// a duplicate of hkeyRoot.
//
// The only required argument is the destination for the returned HKEY.
//
// HKEY *pkey = The returned HKEY.
// Remember to use RegCloseKey(*pkey) when you are finished
// with this registry key.
//
// The last two arguments are optional.
//
// REGSAM sam = Desired access mask.
// Default: KEY_ALL_ACCESS
//
// BOOL fCreate = TRUE if the key should be created.
// Default: FALSE
//
// Returns:
// ERROR_SUCCESS or an error code.
//-----------------------------------------------------------------------------
long OpenRegKey(HKEY hkeyRoot, LPCTSTR szKey, LPCTSTR szSubKey1,
LPCTSTR szSubKey2, HKEY *pkey,
REGSAM sam = KEY_ALL_ACCESS, BOOL fCreate = FALSE);
inline long OpenRegKey(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
HKEY *pkey, REGSAM sam = KEY_ALL_ACCESS, BOOL fCreate = FALSE)
{
return OpenRegKey(HKEY_LOCAL_MACHINE, szKey, szSubKey1, szSubKey2, pkey,
sam, fCreate);
}
inline long OpenRegKey(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
HKEY *pkey, REGSAM sam = KEY_ALL_ACCESS, BOOL fCreate = FALSE)
{
return OpenRegKey(HKEY_LOCAL_MACHINE, g_strBaseRegKey, szSubKey1,
szSubKey2, pkey, sam, fCreate);
}
inline long OpenRegKey(LPCTSTR szSubKey, HKEY *pkey,
REGSAM sam = KEY_ALL_ACCESS, BOOL fCreate = FALSE)
{
return OpenRegKey(HKEY_LOCAL_MACHINE, g_strBaseRegKey, szSubKey, NULL,
pkey, sam, fCreate);
}
inline long OpenRegKey(HKEY *pkey, REGSAM sam = KEY_ALL_ACCESS,
BOOL fCreate = FALSE)
{
return OpenRegKey(HKEY_LOCAL_MACHINE, g_strBaseRegKey, NULL, NULL,
pkey, sam, fCreate);
}
//-----------------------------------------------------------------------------
// OpenUserRegKey
//
// Same as OpenRegKey except hkeyRoot defaults to HKEY_CURRENT_USER.
//-----------------------------------------------------------------------------
inline long OpenUserRegKey(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
HKEY *pkey, REGSAM sam = KEY_ALL_ACCESS, BOOL fCreate = FALSE)
{
return OpenRegKey(HKEY_CURRENT_USER, szKey, szSubKey1, szSubKey2, pkey,
sam, fCreate);
}
inline long OpenUserRegKey(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
HKEY *pkey, REGSAM sam = KEY_ALL_ACCESS, BOOL fCreate = FALSE)
{
return OpenRegKey(HKEY_CURRENT_USER, g_strBaseRegKey, szSubKey1,
szSubKey2, pkey, sam, fCreate);
}
inline long OpenUserRegKey(LPCTSTR szSubKey, HKEY *pkey,
REGSAM sam = KEY_ALL_ACCESS, BOOL fCreate = FALSE)
{
return OpenRegKey(HKEY_CURRENT_USER, g_strBaseRegKey, szSubKey, NULL,
pkey, sam, fCreate);
}
inline long OpenUserRegKey(HKEY *pkey, REGSAM sam = KEY_ALL_ACCESS,
BOOL fCreate = FALSE)
{
return OpenRegKey(HKEY_CURRENT_USER, g_strBaseRegKey, NULL, NULL,
pkey, sam, fCreate);
}
//-----------------------------------------------------------------------------
// GetRegValue
//
// Gets data from the registry. There are numerous overloads of this function
// that basically just provide defaults for the arguments to this function.
//
// Please use the overload that defaults as much as possible.
//
// The registry key/value is a combination of the following five parts.
// The first four are the same as in OpenRegKey().
//
// HKEY hkeyRoot
// LPCTSTR szKey
// LPCTSTR szSubKey1
// LPCTSTR szSubKey2
//
// LPCTSTR szValueName = The name of the value to be set.
// If it is NULL then the default value for the key
// will be set.
//
// Default: none
//
// There are four ways to specify where the data to be returned
// depending on the type of data in the registry.
//
// REG_BINARY
//
// BYTE *pb = Out: The data is copied to this location.
// DWORD *pcb = In: Maximum size of the returned data (in bytes).
// Out: Actual size of the data (in bytes).
//
// REG_SZ
//
// TCHAR *psz = Out: The string is copied to this location.
// DWORD *pcb = In: Maximum size of the returned data (in bytes).
// Out: Actual size of the data (in bytes).
// Includes the null terminator.
//
// REG_DWORD
//
// DWORD *pdw = Out: The data is copied to this location.
// The length is assumed to be sizeof(DWORD).
//
// All other types
//
// DWORD dwType = The data type.
// BYTE *pb = Pointer to the data.
// DWORD *pcb = In: Maximum size of the returned data (in bytes).
// Out: Actual size of the data (in bytes).
// Includes the null terminator if the data is a string type.
//
// Returns:
// ERROR_SUCCESS or an error code.
//-----------------------------------------------------------------------------
long GetRegValue(HKEY hkeyRoot, LPCTSTR szKey, LPCTSTR szSubKey1,
LPCTSTR szSubKey2, LPCTSTR szValueName,
DWORD dwType, BYTE *pb, DWORD *pcb);
//-----------------------------------------------------------------------------
// REG_BINARY variants
//-----------------------------------------------------------------------------
inline long GetRegValue(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, BYTE *pb, DWORD *pcb)
{
return GetRegValue(HKEY_LOCAL_MACHINE, szKey, szSubKey1, szSubKey2,
szValueName,
REG_BINARY, pb, pcb);
}
inline long GetRegValue(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, BYTE *pb, DWORD *pcb)
{
return GetRegValue(HKEY_LOCAL_MACHINE, g_strBaseRegKey, szSubKey1,
szSubKey2, szValueName, REG_BINARY, pb, pcb);
}
inline long GetRegValue(LPCTSTR szSubKey, LPCTSTR szValueName,
BYTE *pb, DWORD *pcb)
{
return GetRegValue(HKEY_LOCAL_MACHINE, g_strBaseRegKey, szSubKey, NULL,
szValueName, REG_BINARY, pb, pcb);
}
inline long GetRegValue(LPCTSTR szValueName, BYTE *pb, DWORD *pcb)
{
return GetRegValue(HKEY_LOCAL_MACHINE, g_strBaseRegKey, NULL, NULL,
szValueName, REG_BINARY, pb, pcb);
}
//-----------------------------------------------------------------------------
// REG_SZ variants
//-----------------------------------------------------------------------------
inline long GetRegValue(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, TCHAR *psz, DWORD *pcb)
{
return GetRegValue(HKEY_LOCAL_MACHINE, szKey, szSubKey1, szSubKey2,
szValueName, REG_SZ, (BYTE *) psz, pcb);
}
inline long GetRegValue(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, TCHAR *psz, DWORD *pcb)
{
return GetRegValue(HKEY_LOCAL_MACHINE, g_strBaseRegKey, szSubKey1,
szSubKey2, szValueName, REG_SZ, (BYTE *) psz, pcb);
}
inline long GetRegValue(LPCTSTR szSubKey, LPCTSTR szValueName,
TCHAR *psz, DWORD *pcb)
{
return GetRegValue(HKEY_LOCAL_MACHINE, g_strBaseRegKey, szSubKey, NULL,
szValueName, REG_SZ, (BYTE *)psz, pcb);
}
#if 0
inline long GetRegValue(HKEY hk, LPCTSTR szValueName,
TCHAR *psz, DWORD *pcb)
{
return GetRegValue(hk, NULL, NULLy, NULL,
szValueName, REG_SZ, (BYTE *)psz, pcb);
}
#endif
inline long GetRegValue(LPCTSTR szValueName, TCHAR *psz, DWORD *pcb)
{
return GetRegValue(HKEY_LOCAL_MACHINE, g_strBaseRegKey, NULL, NULL,
szValueName, REG_SZ, (BYTE *) psz, pcb);
}
//-----------------------------------------------------------------------------
// REG_DWORD variants
//-----------------------------------------------------------------------------
inline long GetRegValue(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, DWORD *pdw)
{
DWORD cb = sizeof(DWORD);
return GetRegValue(HKEY_LOCAL_MACHINE, szKey, szSubKey1, szSubKey2,
szValueName, REG_DWORD, (BYTE *) pdw, &cb);
}
inline long GetRegValue(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, DWORD *pdw)
{
DWORD cb = sizeof(DWORD);
return GetRegValue(HKEY_LOCAL_MACHINE, g_strBaseRegKey, szSubKey1,
szSubKey2, szValueName, REG_DWORD, (BYTE *) pdw, &cb);
}
inline long GetRegValue(LPCTSTR szSubKey, LPCTSTR szValueName, DWORD *pdw)
{
DWORD cb = sizeof(DWORD);
return GetRegValue(HKEY_LOCAL_MACHINE, g_strBaseRegKey, szSubKey, NULL,
szValueName, REG_DWORD, (BYTE *) pdw, &cb);
}
inline long GetRegValue(LPCTSTR szValueName, DWORD *pdw)
{
DWORD cb = sizeof(DWORD);
return GetRegValue(HKEY_LOCAL_MACHINE, g_strBaseRegKey, NULL, NULL,
szValueName, REG_DWORD, (BYTE *) pdw, &cb);
}
//-----------------------------------------------------------------------------
// The following variants are for getting values from an already open key.
//-----------------------------------------------------------------------------
inline long GetRegValue(HKEY hkey, LPCTSTR szKey, LPCTSTR szSubKey,
LPCTSTR szValueName, TCHAR *psz, DWORD *pcb)
{
return GetRegValue(hkey, szKey, szSubKey, NULL, szValueName,
REG_SZ, (BYTE *) psz, pcb);
}
inline long GetRegValue(HKEY hkey, LPCTSTR szValueName, BYTE *pb, DWORD *pcb)
{
return GetRegValue(hkey, NULL, NULL, NULL, szValueName,
REG_BINARY, pb, pcb);
}
inline long GetRegValue(HKEY hkey, LPCTSTR szValueName, TCHAR *psz, DWORD *pcb)
{
return GetRegValue(hkey, NULL, NULL, NULL, szValueName,
REG_SZ, (BYTE *) psz, pcb);
}
inline long GetRegValue(HKEY hkey, LPCTSTR szValueName, DWORD *pdw)
{
DWORD cb = sizeof(DWORD);
return GetRegValue(hkey, NULL, NULL, NULL, szValueName,
REG_DWORD, (BYTE *) pdw, &cb);
}
//-----------------------------------------------------------------------------
// GetUserRegValue
//
// Same as GetRegValue except hkeyRoot defaults to HKEY_CURRENT_USER.
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// REG_BINARY variants
//-----------------------------------------------------------------------------
inline long GetUserRegValue(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, BYTE *pb, DWORD *pcb)
{
return GetRegValue(HKEY_CURRENT_USER, szKey, szSubKey1, szSubKey2,
szValueName,
REG_BINARY, pb, pcb);
}
inline long GetUserRegValue(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, BYTE *pb, DWORD *pcb)
{
return GetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, szSubKey1,
szSubKey2, szValueName, REG_BINARY, pb, pcb);
}
inline long GetUserRegValue(LPCTSTR szSubKey, LPCTSTR szValueName,
BYTE *pb, DWORD *pcb)
{
return GetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, szSubKey, NULL,
szValueName, REG_BINARY, pb, pcb);
}
inline long GetUserRegValue(LPCTSTR szValueName, BYTE *pb, DWORD *pcb)
{
return GetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, NULL, NULL,
szValueName, REG_BINARY, pb, pcb);
}
//-----------------------------------------------------------------------------
// REG_SZ variants
//-----------------------------------------------------------------------------
inline long GetUserRegValue(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, TCHAR *psz, DWORD *pcb)
{
return GetRegValue(HKEY_CURRENT_USER, szKey, szSubKey1, szSubKey2,
szValueName, REG_SZ, (BYTE *) psz, pcb);
}
inline long GetUserRegValue(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, TCHAR *psz, DWORD *pcb)
{
return GetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, szSubKey1,
szSubKey2, szValueName, REG_SZ, (BYTE *) psz, pcb);
}
inline long GetUserRegValue(LPCTSTR szSubKey, LPCTSTR szValueName,
TCHAR *psz, DWORD *pcb)
{
return GetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, szSubKey, NULL,
szValueName, REG_SZ, (BYTE *)psz, pcb);
}
inline long GetUserRegValue(LPCTSTR szValueName, TCHAR *psz, DWORD *pcb)
{
return GetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, NULL, NULL,
szValueName, REG_SZ, (BYTE *) psz, pcb);
}
//-----------------------------------------------------------------------------
// REG_DWORD variants
//-----------------------------------------------------------------------------
inline long GetUserRegValue(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, DWORD *pdw)
{
DWORD cb = sizeof(DWORD);
return GetRegValue(HKEY_CURRENT_USER, szKey, szSubKey1, szSubKey2,
szValueName, REG_DWORD, (BYTE *) pdw, &cb);
}
inline long GetUserRegValue(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, DWORD *pdw)
{
DWORD cb = sizeof(DWORD);
return GetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, szSubKey1,
szSubKey2, szValueName, REG_DWORD, (BYTE *) pdw, &cb);
}
inline long GetUserRegValue(LPCTSTR szSubKey, LPCTSTR szValueName, DWORD *pdw)
{
DWORD cb = sizeof(DWORD);
return GetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, szSubKey, NULL,
szValueName, REG_DWORD, (BYTE *) pdw, &cb);
}
inline long GetUserRegValue(LPCTSTR szValueName, DWORD *pdw)
{
DWORD cb = sizeof(DWORD);
return GetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, NULL, NULL,
szValueName, REG_DWORD, (BYTE *) pdw, &cb);
}
inline long GetUserRegValue(LPCTSTR szSubKey, LPCTSTR szValueName, DWORD &dw)
{
DWORD cb = sizeof(DWORD);
return GetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, szSubKey, NULL,
szValueName, REG_DWORD, (BYTE *) &dw, &cb);
}
inline long GetUserRegValue(LPCTSTR szValueName, DWORD &dw)
{
DWORD cb = sizeof(DWORD);
return GetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, NULL, NULL,
szValueName, REG_DWORD, (BYTE *) &dw, &cb);
}
//-----------------------------------------------------------------------------
// SetRegValue
//
// Sets data into the registry. There are numerous overloads of this function
// that basically just provide defaults for the arguments to this function.
//
// Please use the overload that defaults as much as possible.
//
// The registry key/value is a combination of the following five parts.
// The first four are the same as in OpenRegKey().
//
// HKEY hkeyRoot
// LPCTSTR szKey
// LPCTSTR szSubKey1
// LPCTSTR szSubKey2
//
// LPCTSTR szValueName = The name of the value to be set.
// If it is NULL then the default value for the key
// will be set.
//
// Default: none
//
// There are four ways to specify the data to be set into the registry
// depending on the type of data being stored.
//
// REG_BINARY
//
// BYTE *pb = Pointer to the data.
// DWORD cb = Actual size of the data (in bytes).
//
// REG_SZ
//
// TCHAR *psz = The data is written as type REG_SZ.
// The length is calculated as _tcsclen(psz) + sizeof(TCHAR).
//
// REG_DWORD
//
// DWORD dw = The data is written as type DWORD.
// The length is calculated as sizeof(DWORD).
//
// All other types
//
// DWORD dwType = The data type.
// BYTE *pb = Pointer to the data.
// DWORD cb = Actual size of the data in bytes.
//
// Returns:
// ERROR_SUCCESS or an error code.
//-----------------------------------------------------------------------------
long SetRegValue(HKEY hkeyRoot, LPCTSTR szKey, LPCTSTR szSubKey1,
LPCTSTR szSubKey2, LPCTSTR szValueName,
DWORD dwType, const BYTE *pb, DWORD cb);
//-----------------------------------------------------------------------------
// REG_BINARY variants
//-----------------------------------------------------------------------------
inline long SetRegValue(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, const BYTE *pb, DWORD cb)
{
return SetRegValue(HKEY_LOCAL_MACHINE, szKey, szSubKey1, szSubKey2,
szValueName, REG_BINARY, pb, cb);
}
inline long SetRegValue(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, const BYTE *pb, DWORD cb)
{
return SetRegValue(HKEY_LOCAL_MACHINE, g_strBaseRegKey, szSubKey1,
szSubKey2, szValueName, REG_BINARY, pb, cb);
}
inline long SetRegValue(LPCTSTR szSubKey, LPCTSTR szValueName,
const BYTE *pb, DWORD cb)
{
return SetRegValue(HKEY_LOCAL_MACHINE, g_strBaseRegKey, szSubKey, NULL,
szValueName, REG_BINARY, pb, cb);
}
inline long SetRegValue(LPCTSTR szValueName, const BYTE *pb, DWORD cb)
{
return SetRegValue(HKEY_LOCAL_MACHINE, g_strBaseRegKey, NULL, NULL,
szValueName, REG_BINARY, pb, cb);
}
//-----------------------------------------------------------------------------
// REG_SZ variants
//-----------------------------------------------------------------------------
inline long SetRegValue(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, const TCHAR *psz)
{
return SetRegValue(HKEY_LOCAL_MACHINE,
szKey, szSubKey1, szSubKey2, szValueName,
REG_SZ, (const BYTE *) psz, _tcsclen(psz) + sizeof(TCHAR));
}
inline long SetRegValue(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, const TCHAR *psz)
{
return SetRegValue(HKEY_LOCAL_MACHINE, g_strBaseRegKey,
szSubKey1, szSubKey2, szValueName,
REG_SZ, (const BYTE *) psz, _tcsclen(psz) + sizeof(TCHAR));
}
inline long SetRegValue(LPCTSTR szSubKey, LPCTSTR szValueName, const TCHAR *psz)
{
return SetRegValue(HKEY_LOCAL_MACHINE,
g_strBaseRegKey, szSubKey, NULL, szValueName,
REG_SZ, (const BYTE *)psz, _tcsclen(psz) + sizeof(TCHAR));
}
inline long SetRegValue(LPCTSTR szValueName, const TCHAR *psz)
{
return SetRegValue(HKEY_LOCAL_MACHINE,
g_strBaseRegKey, NULL, NULL, szValueName,
REG_SZ, (const BYTE *) psz, _tcsclen(psz) + sizeof(TCHAR));
}
//-----------------------------------------------------------------------------
// REG_DWORD variants
//-----------------------------------------------------------------------------
inline long SetRegValue(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, DWORD dw)
{
return SetRegValue(HKEY_LOCAL_MACHINE,
szKey, szSubKey1, szSubKey2, szValueName,
REG_DWORD, (BYTE *) &dw, sizeof(DWORD));
}
inline long SetRegValue(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, DWORD dw)
{
return SetRegValue(HKEY_LOCAL_MACHINE,
g_strBaseRegKey, szSubKey1, szSubKey2, szValueName,
REG_DWORD, (BYTE *) &dw, sizeof(DWORD));
}
inline long SetRegValue(LPCTSTR szSubKey, LPCTSTR szValueName, DWORD dw)
{
return SetRegValue(HKEY_LOCAL_MACHINE,
g_strBaseRegKey, szSubKey, NULL, szValueName,
REG_DWORD, (const BYTE *) &dw, sizeof(DWORD));
}
inline long SetRegValue(LPCTSTR szValueName, DWORD dw)
{
return SetRegValue(HKEY_LOCAL_MACHINE,
g_strBaseRegKey, NULL, NULL, szValueName,
REG_DWORD, (const BYTE *) &dw, sizeof(DWORD));
}
//-----------------------------------------------------------------------------
// The following variants are for setting values in an already open key.
//-----------------------------------------------------------------------------
inline long SetRegValue(HKEY hkey, LPCTSTR szValueName, const BYTE *pb, DWORD cb)
{
return SetRegValue(hkey, NULL, NULL, NULL, szValueName,
REG_BINARY, pb, cb);
}
inline long SetRegValue(HKEY hkey, LPCTSTR szValueName, const TCHAR *psz)
{
return SetRegValue(hkey, NULL, NULL, NULL, szValueName,
REG_SZ, (const BYTE *) psz, _tcsclen(psz) + sizeof(TCHAR));
}
inline long SetRegValue(HKEY hkey, LPCTSTR szValueName, DWORD dw)
{
return SetRegValue(hkey, NULL, NULL, NULL, szValueName,
REG_DWORD, (const BYTE *) &dw, sizeof(DWORD));
}
//-----------------------------------------------------------------------------
// SetUserRegValue
//
// Same as SetRegValue except hkeyRoot defaults to HKEY_CURRENT_USER.
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// REG_BINARY variants
//-----------------------------------------------------------------------------
inline long SetUserRegValue(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, const BYTE *pb, DWORD cb)
{
return SetRegValue(HKEY_CURRENT_USER, szKey, szSubKey1, szSubKey2,
szValueName, REG_BINARY, pb, cb);
}
inline long SetUserRegValue(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, const BYTE *pb, DWORD cb)
{
return SetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, szSubKey1,
szSubKey2, szValueName, REG_BINARY, pb, cb);
}
inline long SetUserRegValue(LPCTSTR szSubKey, LPCTSTR szValueName,
const BYTE *pb, DWORD cb)
{
return SetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, szSubKey, NULL,
szValueName, REG_BINARY, pb, cb);
}
inline long SetUserRegValue(LPCTSTR szValueName, const BYTE *pb, DWORD cb)
{
return SetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey, NULL, NULL,
szValueName, REG_BINARY, pb, cb);
}
//-----------------------------------------------------------------------------
// REG_SZ variants
//-----------------------------------------------------------------------------
inline long SetUserRegValue(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, const TCHAR *psz)
{
return SetRegValue(HKEY_CURRENT_USER,
szKey, szSubKey1, szSubKey2, szValueName,
REG_SZ, (const BYTE *) psz, _tcsclen(psz) + sizeof(TCHAR));
}
inline long SetUserRegValue(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, const TCHAR *psz)
{
return SetRegValue(HKEY_CURRENT_USER, g_strBaseRegKey,
szSubKey1, szSubKey2, szValueName,
REG_SZ, (const BYTE *) psz, _tcsclen(psz) + sizeof(TCHAR));
}
inline long SetUserRegValue(LPCTSTR szSubKey, LPCTSTR szValueName, const TCHAR *psz)
{
return SetRegValue(HKEY_CURRENT_USER,
g_strBaseRegKey, szSubKey, NULL, szValueName,
REG_SZ, (const BYTE *)psz, _tcsclen(psz) + sizeof(TCHAR));
}
inline long SetUserRegValue(LPCTSTR szValueName, const TCHAR *psz)
{
return SetRegValue(HKEY_CURRENT_USER,
g_strBaseRegKey, NULL, NULL, szValueName,
REG_SZ, (const BYTE *) psz, _tcsclen(psz) + sizeof(TCHAR));
}
//-----------------------------------------------------------------------------
// REG_DWORD variants
//-----------------------------------------------------------------------------
inline long SetUserRegValue(LPCTSTR szKey, LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, DWORD dw)
{
return SetRegValue(HKEY_CURRENT_USER,
szKey, szSubKey1, szSubKey2, szValueName,
REG_DWORD, (BYTE *) &dw, sizeof(DWORD));
}
inline long SetUserRegValue(LPCTSTR szSubKey1, LPCTSTR szSubKey2,
LPCTSTR szValueName, DWORD dw)
{
return SetRegValue(HKEY_CURRENT_USER,
g_strBaseRegKey, szSubKey1, szSubKey2, szValueName,
REG_DWORD, (BYTE *) &dw, sizeof(DWORD));
}
inline long SetUserRegValue(LPCTSTR szSubKey, LPCTSTR szValueName, DWORD dw)
{
return SetRegValue(HKEY_CURRENT_USER,
g_strBaseRegKey, szSubKey, NULL, szValueName,
REG_DWORD, (const BYTE *) &dw, sizeof(DWORD));
}
inline long SetUserRegValue(LPCTSTR szValueName, DWORD dw)
{
return SetRegValue(HKEY_CURRENT_USER,
g_strBaseRegKey, NULL, NULL, szValueName,
REG_DWORD, (const BYTE *) &dw, sizeof(DWORD));
}
#endif // BPCREG_H
@@ -0,0 +1,120 @@
//// bpcsuspend.h - header file for interface that allows external apps
// to request that the bpc video server release all of its devices and
// shutdown its directshow graph.
// USAGE:
// in order to request that the bpc subsystem release its devices
// create an instance of the CBPCSuspend class
// to check if this succeeded use the IsBPCSuspended member function. if IsBPCSuspended returns false
// then that means that there are active bpc video clients and you must treat this as you would a
// device busy or device open type of failure.
// when you are done with the devices destroy the CBPCSuspend class and this will notify vidsvr
// that it can resume using the devices and return to background data capturing
//
// NOTE: you must compile vidsvr.odl and include the resulting .h before including this file
//
// CLSID_BPCSuspend comes from the header file generated from compiling vidsvr.odl
// IBPCSuspended comes from the header file generated from compiling vidsvr.odl
// theory of operation:
// by using GetActiveObject instead of CoCreateInstance we don't force vidsvr to be loaded just to find
// out that it wasn't running in the first place.
// by returning an object that must be released to free the devices so that vidsvr can continue background
// data capture we utilize COM to manage this resource. this means that if the external app that requested
// the devices crashes or leaks then the suspension object will be automatically released and
// vidsvr can resume using the devices without requiring a system reboot or some other unfriendly intervention.
#ifndef _MSBPCVideo_H_
#error you must include the .h generated from compiling vidsvr.odl before including this file
#endif
#ifndef BPCSUSP_H
#define BPCSUSP_H
#pragma once
#include <oleauto.h>
#ifdef _CPPUNWIND
#pragma message("bpcsusp.h using exceptions")
#define BPCTRY try {
#ifdef _DEBUG
#define BPCCATCH } catch(...) { OutputDebugString("CBPCSuspend exception\r\n");}
#else
#define BPCCATCH } catch(...) {}
#endif
#define BPCNOTHROW throw()
#else
#define BPCTRY
#define BPCCATCH
#define BPCNOTHROW
#endif
class CBPCSuspend {
IDispatch* m_pSuspended;
bool m_fBPCExists;
public:
inline CBPCSuspend() BPCNOTHROW : m_pSuspended(NULL), m_fBPCExists(false) {
BPCTRY
#ifdef _DEBUG
OutputDebugString("CBPCSuspend()::CBPCSuspend()\r\n");
TCHAR msgtemp[256];
#endif
IUnknown *pUnkSuspendor = NULL;
DWORD dwReserved;
HRESULT hr = GetActiveObject(CLSID_BPCSuspend, &dwReserved, &pUnkSuspendor);
if (SUCCEEDED(hr)) {
IBPCSuspend *pSuspendor = NULL;
hr = pUnkSuspendor->QueryInterface(IID_IBPCSuspend, reinterpret_cast<void **>(&pSuspendor));
pUnkSuspendor->Release();
if (SUCCEEDED(hr)) {
#ifdef _DEBUG
OutputDebugString("CBPCSuspend()::CBPCSuspend() BPC exists\r\n");
#endif
m_fBPCExists = true;
hr = pSuspendor->DeviceRelease(0L, &m_pSuspended);
if (FAILED(hr)) {
#ifdef _DEBUG
wsprintf(msgtemp, "CBPCSuspend()::CBPCSuspend() Suspendor->DeviceRelease() rc = %lx\r\n", hr);
OutputDebugString(msgtemp);
#endif
ASSERT(!m_pSuspended);
}
#ifdef _DEBUG
else {
wsprintf(msgtemp, "CBPCSuspend()::CBPCSuspend() BPC video server suspended\r\n");
OutputDebugString(msgtemp);
}
#endif
pSuspendor->Release();
}
} else {
#ifdef _DEBUG
wsprintf(msgtemp, "CBPCSuspend()::CBPCSuspend() GetActiveObject() rc = %lx\r\n", hr);
OutputDebugString(msgtemp);
#endif
}
BPCCATCH
}
inline ~CBPCSuspend() BPCNOTHROW {
BPCTRY
if (m_fBPCExists && m_pSuspended) {
m_pSuspended->Release();
m_pSuspended = NULL;
}
BPCCATCH
}
inline bool IsBPCSuspended() BPCNOTHROW {
// if m_fBPCExists but we weren't able to retrieve a suspension object then
// there are active video clients and you must treat this as a device busy/failed to open type error
if (m_fBPCExists && !m_pSuspended) {
return false;
}
return true;
}
};
#endif
// end of file - bpcsusp.h
@@ -0,0 +1,207 @@
// Currently, the interface constrains the total number of output subsystems
// to a limit of 32.
import "wtypes.idl";
[
version(0.1),
uuid(A4916A26-1051-11d1-BFC4-00C04FBBDEC1),
pointer_default(unique)
]
interface BridgeAdmin
{
typedef enum BRIDGE_OUTPUT_STATE {
BRIDGE_OUTPUT_STATE_UNLOADED,
BRIDGE_OUTPUT_STATE_RUNNING
} BRIDGE_OUTPUT_STATE;
typedef enum BRIDGE_BANDWIDTH_POLICY {
BRIDGE_BANDWIDTH_POLICY_GUARANTEED,
BRIDGE_BANDWIDTH_POLICY_OPPORTUNISTIC,
BRIDGE_BANDWIDTH_POLICY_REGULATED
} BRIDGE_BANDWIDTH_POLICY;
typedef DWORD BRIDGE_IP4ADDR;
// global configuration parameters
typedef struct BRIDGE_CONFIG {
DWORD WorkerThreads;
} BRIDGE_CONFIG;
typedef struct BRIDGE_STATISTICS {
DWORD PacketsReceived;
DWORD PacketsReceivedMulticast;
DWORD PacketsReceivedTunnel;
DWORD PacketsForwarded;
} BRIDGE_STATISTICS;
typedef struct BRIDGE_OUTPUT_STATISTICS {
DWORD PacketsForwarded;
DWORDLONG BytesForwarded;
DWORD PacketOverflows;
DWORD InterfaceFailures;
DWORD LastBitsPerSecond;
} BRIDGE_OUTPUT_STATISTICS;
typedef struct BRIDGE_OUTPUT_CONFIG {
LPWSTR DisplayName;
LPWSTR DllFilename;
DWORD MaxBandwidth; // in bits/sec
DWORD MinOpportunisticBandwidth; // in bits/sec
} BRIDGE_OUTPUT_CONFIG;
typedef enum BRIDGE_OUTPUT_VALUE_TYPE {
BRIDGE_OUTPUT_VALUE_STRING,
BRIDGE_OUTPUT_VALUE_DWORD,
BRIDGE_OUTPUT_VALUE_IP4ADDR,
BRIDGE_OUTPUT_VALUE_BOOLEAN
} BRIDGE_OUTPUT_VALUE_TYPE;
typedef struct BRIDGE_OUTPUT_VALUE {
DWORD Index;
LPWSTR Name;
union BRIDGE_OUTPUT_VALUE_DATA
switch (BRIDGE_OUTPUT_VALUE_TYPE Type) {
case BRIDGE_OUTPUT_VALUE_STRING:
// LPWSTR String;
DWORD StringIgnore;
case BRIDGE_OUTPUT_VALUE_DWORD:
DWORD Dword;
case BRIDGE_OUTPUT_VALUE_IP4ADDR:
BRIDGE_IP4ADDR IPAddress;
case BRIDGE_OUTPUT_VALUE_BOOLEAN:
BOOL Boolean;
} Data;
LPWSTR String;
} BRIDGE_OUTPUT_VALUE;
typedef struct BRIDGE_OUTPUT_INFO {
DWORD OutputID;
BRIDGE_OUTPUT_STATISTICS Statistics;
BRIDGE_OUTPUT_CONFIG Config;
BRIDGE_OUTPUT_STATE State;
HRESULT Status;
} BRIDGE_OUTPUT_INFO;
typedef struct BRIDGE_ROUTE_RECORD {
BRIDGE_IP4ADDR Address;
BRIDGE_IP4ADDR Netmask;
DWORD OutputMask;
DWORD TotalMatches;
DWORD ReservationID;
DWORD LastBitRate;
} BRIDGE_ROUTE_RECORD, *PBRIDGE_ROUTE_RECORD;
typedef struct BRIDGE_RESERVATION {
DWORD ReservationID;
DWORD SubsystemID;
BRIDGE_BANDWIDTH_POLICY BandwidthPolicy;
DWORD BitsPerSecond;
LPWSTR DisplayName;
} BRIDGE_RESERVATION;
typedef BRIDGE_ROUTE_RECORD * BRIDGE_ROUTE_RECORD_LIST;
// ------------------------------------------------------------------------------
// test to see if RPC server is listening
HRESULT BridgePing (void);
HRESULT BridgeGetVersion (
[out] DWORD * version);
HRESULT BridgeGetConfig (
[out] BRIDGE_CONFIG *);
HRESULT BridgeSetConfig (
[in] BRIDGE_CONFIG *);
// output subsystem functions -----------------------------------------------------
HRESULT BridgeOutputAdd (
[out] DWORD * output_id,
[in] BRIDGE_OUTPUT_CONFIG * config);
HRESULT BridgeOutputDelete (
[in] DWORD output_id);
HRESULT BridgeOutputModify (
[in] DWORD output_id,
[in] BRIDGE_OUTPUT_CONFIG * config);
HRESULT BridgeOutputGetConfig (
[in] DWORD output_id,
[out] BRIDGE_OUTPUT_CONFIG * config);
HRESULT BridgeOutputGetInfo (
[in] DWORD output_id,
[out] BRIDGE_OUTPUT_INFO * info);
HRESULT BridgeOutputSetState (
[in] DWORD output_id,
[in] BRIDGE_OUTPUT_STATE state);
HRESULT BridgeOutputEnum (
[out] DWORD * length,
[out, size_is (,*length)] BRIDGE_OUTPUT_INFO ** array);
HRESULT BridgeOutputGetValue (
[in] DWORD output_id,
[in] DWORD index,
[out] BRIDGE_OUTPUT_VALUE * value);
HRESULT BridgeOutputSetValue (
[in] DWORD output_id,
[in] BRIDGE_OUTPUT_VALUE * value);
HRESULT BridgeOutputEnumValue (
[in] DWORD output_id,
[out] DWORD * length,
[out, size_is (,*length)] BRIDGE_OUTPUT_VALUE ** array);
// routing interface -------------------------------------------------------
HRESULT BridgeRouteAdd (
[in] BRIDGE_ROUTE_RECORD * route);
HRESULT BridgeRouteDelete (
[in] BRIDGE_IP4ADDR address,
[in] BRIDGE_IP4ADDR mask);
HRESULT BridgeRouteModify (
[in] BRIDGE_IP4ADDR address,
[in] BRIDGE_IP4ADDR mask,
[in] DWORD subsystem_mask);
HRESULT BridgeRouteEnum (
[out] DWORD * length,
[out, size_is (,*length)] BRIDGE_ROUTE_RECORD ** array);
HRESULT BridgeRouteLookup (
[in] BRIDGE_IP4ADDR address,
[in] BRIDGE_IP4ADDR netmask,
[out] BRIDGE_ROUTE_RECORD * route);
HRESULT BridgeInterfaceEnum (
[out] DWORD * length,
[out, size_is (,*length)] BRIDGE_IP4ADDR ** array);
// reservation functions ----------------------------------------------------
HRESULT BridgeResvAdd (
[in] BRIDGE_RESERVATION * resv,
[out] DWORD * resv_id);
HRESULT BridgeResvDelete (
[in] DWORD resv_id);
HRESULT BridgeResvLookup (
[in] DWORD resv_id,
[out] BRIDGE_RESERVATION * resv);
HRESULT BridgeResvEnum (
[out] DWORD * length,
[out, size_is(,*length)] BRIDGE_RESERVATION ** array);
}
@@ -0,0 +1,232 @@
//
// Values are 32 bit values layed out as follows:
//
// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
// +---+-+-+-----------------------+-------------------------------+
// |Sev|C|R| Facility | Code |
// +---+-+-+-----------------------+-------------------------------+
//
// where
//
// Sev - is the severity code
//
// 00 - Success
// 01 - Informational
// 10 - Warning
// 11 - Error
//
// C - is the Customer code flag
//
// R - is a reserved bit
//
// Facility - is the facility code
//
// Code - is the facility's status code
//
//
// Define the facility codes
//
//
// Define the severity codes
//
//
// MessageId: BRIDGE_E_INVALID_OUTPUT_ID
//
// MessageText:
//
// The output subsystem ID is invalid.
//
#define BRIDGE_E_INVALID_OUTPUT_ID ((HRESULT)0xC0040001L)
//
// MessageId: BRIDGE_E_INVALID_RESV_ID
//
// MessageText:
//
// The bandwidth reservation ID is invalid.
//
#define BRIDGE_E_INVALID_RESV_ID ((HRESULT)0xC0040002L)
//
// MessageId: BRIDGE_E_INVALID_ROUTE
//
// MessageText:
//
// The specified route does not match any entry in the filter table.
//
#define BRIDGE_E_INVALID_ROUTE ((HRESULT)0xC0040003L)
//
// MessageId: BRIDGE_E_INVALID_STATE
//
// MessageText:
//
// The specified output driver state code is not valid.
//
#define BRIDGE_E_INVALID_STATE ((HRESULT)0xC0040004L)
//
// MessageId: BRIDGE_E_ROUTE_EXISTS
//
// MessageText:
//
// The specified route already exists.
//
#define BRIDGE_E_ROUTE_EXISTS ((HRESULT)0xC0040005L)
//
// MessageId: BRIDGE_E_INSUFFICIENT_BANDWIDTH
//
// MessageText:
//
// The bandwidth reservation cannot be created or altered because
// the maximum bandwidth of the target output subsystem would be exceeded.
//
#define BRIDGE_E_INSUFFICIENT_BANDWIDTH ((HRESULT)0xC0040006L)
//
// MessageId: BRIDGE_E_OUTPUT_MAX_REACHED
//
// MessageText:
//
// The bridge has reached its maximum number of output subsystems.
// No more output subsystems can be installed.
//
#define BRIDGE_E_OUTPUT_MAX_REACHED ((HRESULT)0xC0040007L)
//
// MessageId: BRIDGE_E_INTERNAL_ERROR
//
// MessageText:
//
// The bridge encountered an internal error.
// This error should not occur during normal usage.
// Please check the event log on the server computer.
//
#define BRIDGE_E_INTERNAL_ERROR ((HRESULT)0xC0040008L)
//
// MessageId: BRIDGE_E_OUTPUT_VALUE_ERROR
//
// MessageText:
//
// The output driver returned invalid configuration data.
// Make sure that the output subsystem driver DLL is compatable with
// this version of the multicast router.
//
#define BRIDGE_E_OUTPUT_VALUE_ERROR ((HRESULT)0xC0040009L)
//
// MessageId: BRIDGE_E_INVALID_OUTPUT_VALUE
//
// MessageText:
//
// The value of the configuration is not a valid datatype.
//
#define BRIDGE_E_INVALID_OUTPUT_VALUE ((HRESULT)0xC004000AL)
//
// MessageId: BRIDGE_E_OUTPUT_VALUE_REJECTED
//
// MessageText:
//
// The output driver rejected the configuration data.
// Make sure the index and data type of the configuration data is valid.
// Please check the event log on the server computer.
//
#define BRIDGE_E_OUTPUT_VALUE_REJECTED ((HRESULT)0xC004000BL)
//
// MessageId: BRIDGE_E_OUTPUT_VALUE_NOT_SUPPORTED
//
// MessageText:
//
// The output driver does not support dynamic configuration.
//
#define BRIDGE_E_OUTPUT_VALUE_NOT_SUPPORTED ((HRESULT)0xC004000CL)
//
// MessageId: BRIDGE_E_OUTPUT_SET_STATE_ERROR
//
// MessageText:
//
// The output driver refused to change its state.
// Please check the event log on the server computer.
//
#define BRIDGE_E_OUTPUT_SET_STATE_ERROR ((HRESULT)0xC004000DL)
//
// MessageId: BRIDGE_E_OUTPUT_DLL_LOAD_FAILED
//
// MessageText:
//
// The output driver DLL could not be loaded.
// Please check to make sure that the driver DLL path is correct
// and that the DLL is compatable with this version of the multicast router.
// Please check the event log on the server computer.
//
#define BRIDGE_E_OUTPUT_DLL_LOAD_FAILED ((HRESULT)0xC004000EL)
//
// MessageId: BRIDGE_E_OUTPUT_DLL_INCOMPATABLE
//
// MessageText:
//
// The output driver DLL is not compatable with this version of the multicast router.
//
#define BRIDGE_E_OUTPUT_DLL_INCOMPATABLE ((HRESULT)0xC004000FL)
//
// MessageId: BRIDGE_E_REGISTRY_ERROR
//
// MessageText:
//
// A registry operation could not be completed.
// Please check the event log on the server computer.
//
#define BRIDGE_E_REGISTRY_ERROR ((HRESULT)0xC0040010L)
//
// MessageId: BRIDGE_E_WINSOCK_ERROR
//
// MessageText:
//
// An error occurred in the WinSock subsystem.
// Please check the event log on the server computer.
//
#define BRIDGE_E_WINSOCK_ERROR ((HRESULT)0xC0040011L)
//
// MessageId: BRIDGE_E_OUTPUT_NOT_LOADED
//
// MessageText:
//
// The operation could not be completed because the output driver is not loaded.
// Please load the output driver first.
//
#define BRIDGE_E_OUTPUT_NOT_LOADED ((HRESULT)0xC0040012L)
//
// MessageId: BRIDGE_E_OUTPUT_STARTUP_FAILED
//
// MessageText:
//
// The output subsystem could not be started.
// Please check the event log on the server computer.
//
#define BRIDGE_E_OUTPUT_STARTUP_FAILED ((HRESULT)0xC0040013L)
//
// MessageId: BRIDGE_E_OUTPUT_SHUTDOWN_PENDING
//
// MessageText:
//
// The operation could not be completed because the output subsystem is in the process of shutting down.
//
#define BRIDGE_E_OUTPUT_SHUTDOWN_PENDING ((HRESULT)0xC0040014L)
@@ -0,0 +1,205 @@
// Copyright (C) 1997 Microsoft Corporation. All Rights Reserved.
//
// MODULE: bridge.h
//
// PURPOSE: DLL output service functions for MSBDN Bridge
//
// FUNCTIONS DEFINED BY BRIDGE.DLL:
// msbdnPacketLength - length of a packet
// msbdnPacketMemcpy - copies data from a packet
// msbdnPacketGetData - returns pointer to raw packet data
//
// FUNCTIONS DEFINED BY LOADABLE OUTPUT DLL:
// msbdnOutputStartup - called once during initialization
// msbdnOutputSetState - enable/disable output
// msbdnOutputShutdown - called once during shutdown
// msbdnOutputSetHWAddr - override for network MAC address
// msbdnOutputSetBandwidth - set self throttling rate
// msbdnOutputSetRoutingInfo - set routing information
// msbdnOutputStreamStatus - called when "streams" start and stop
// msbdnOutputSendPacket - called to send data
//
// COMMENTS:
//
#ifndef BRIDGE_H
#define BRIDGE_H
#include "packet.h"
#ifndef EXTERN_C
#ifdef __cplusplus
#define EXTERN_C extern "C"
#else
#define EXTERN_C
#endif
#endif
#define MSBDN_BRIDGE_CALLBACKS_VERSION 0x00020000U
typedef DWORD MSBDN_SUBSYSTEM_ID;
struct MSBDN_OUTPUT_SUBSYSTEM;
typedef struct MSBDN_BRIDGE_CALLBACKS {
DWORD Version;
HRESULT (*ReportState) (struct MSBDN_OUTPUT_SUBSYSTEM *, DWORD state, LPCSTR message);
HRESULT (*ReportActivity) (struct MSBDN_OUTPUT_SUBSYSTEM *, WORD type, DWORD amount);
HRESULT (*ReportEvent) (struct MSBDN_OUTPUT_SUBSYSTEM *, WORD, DWORD, LPCWSTR);
} MSBDN_BRIDGE_CALLBACKS;
// this is analogous to the kernel's DEVICE_OBJECT, kind of.
typedef struct MSBDN_OUTPUT_SUBSYSTEM {
DWORD Version;
MSBDN_BRIDGE_CALLBACKS BridgeCallbacks;
MSBDN_SUBSYSTEM_ID OutputSubsystemID;
HKEY RegistryKey;
LPVOID DriverContext;
} MSBDN_OUTPUT_SUBSYSTEM;
#define MSBDN_OUTPUT_SUBSYSTEM_VERSION_1 1
#define MSBDN_OUTPUT_SUBSYSTEM_VERSION MSBDN_OUTPUT_SUBSYSTEM_VERSION_1
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
#ifndef MSBDNOUTPUTAPI
#define MSBDNOUTPUTAPI __declspec (dllexport)
#endif
#ifndef MSBDNBRIDGEAPI
#define MSBDNBRIDGEAPI __declspec (dllimport)
#endif
// for backward combustibility, i mean compatability
typedef PACKET_BUFFER * HPACKET;
// this is the second parameter in msbdnBridgeReportState
#define MSBDN_OUTPUT_DISABLED 0
#define MSBDN_OUTPUT_ENABLED 1
#define MSBDN_OUTPUT_FORCED 2
#define MSBDN_OUTPUT_WARNING 10
// this is the first parameer in msbdnBridgeReportActivity
#define MSBDN_REPORT_RATE 100
#define MSBDN_REPORT_OUTPUT 101
#define MSBDN_REPORT_ERROR 102
#define MSBDN_REPORT_TIMEOUT 103 // dwOutputTimeouts
#define MSBDN_REPORT_FULLFIFO 104 // dwOutputFullFifo
#define MSBDN_OUTPUT_API_VERSION 0x00020000
#define MSBDN_OUTPUT_VALUE_STRING 0
#define MSBDN_OUTPUT_VALUE_DWORD 1
#define MSBDN_OUTPUT_VALUE_IPADDRESS 2
#define MSBDN_OUTPUT_VALUE_BOOLEAN 3
typedef struct MSBDN_OUTPUT_VALUE {
DWORD Index;
DWORD Type;
LPWSTR Name;
union {
DWORD Dword;
LPWSTR String;
IN_ADDR IPAddress;
BOOL Boolean;
};
} MSBDN_OUTPUT_VALUE;
typedef HRESULT (*PMSBDNOUTPUTCREATE) (MSBDN_OUTPUT_SUBSYSTEM *, DWORD);
typedef HRESULT (*PMSBDNOUTPUTDESTROY) (MSBDN_OUTPUT_SUBSYSTEM *);
typedef HRESULT (*PMSBDNOUTPUTSETHWADDR) (MSBDN_OUTPUT_SUBSYSTEM *, LPBYTE, LPBYTE, LPWORD);
typedef HRESULT (*PMSBDNOUTPUTSETBANDWIDTH) (MSBDN_OUTPUT_SUBSYSTEM *, DWORD);
typedef HRESULT (*PMSBDNOUTPUTSETROUTINGINFO) (MSBDN_OUTPUT_SUBSYSTEM *, LPVOID);
typedef HRESULT (*PMSBDNOUTPUTSTREAMSTATUS) (MSBDN_OUTPUT_SUBSYSTEM *, WORD, LPBYTE, BOOL);
typedef HRESULT (*PMSBDNOUTPUTSENDPACKET) (MSBDN_OUTPUT_SUBSYSTEM *, PACKET_BUFFER *);
typedef HRESULT (*PMSBDNOUTPUTSETVALUE) (MSBDN_OUTPUT_SUBSYSTEM *, MSBDN_OUTPUT_VALUE *);
typedef HRESULT (*PMSBDNOUTPUTGETVALUE) (MSBDN_OUTPUT_SUBSYSTEM *, MSBDN_OUTPUT_VALUE *);
typedef HRESULT (*PMSBDNOUTPUTGETVALUECOUNT) (MSBDN_OUTPUT_SUBSYSTEM *, DWORD *);
typedef HRESULT (*PMSBDNOUTPUTFREEBUFFER) (MSBDN_OUTPUT_SUBSYSTEM *, LPVOID);
typedef HRESULT (*PMSBDNOUTPUTGETSTATUS) (MSBDN_OUTPUT_SUBSYSTEM *, HRESULT *);
MSBDNOUTPUTAPI HRESULT msbdnOutputCreate (MSBDN_OUTPUT_SUBSYSTEM *, DWORD);
MSBDNOUTPUTAPI HRESULT msbdnOutputDestroy (MSBDN_OUTPUT_SUBSYSTEM *);
MSBDNOUTPUTAPI HRESULT msbdnOutputSetHWAddr (MSBDN_OUTPUT_SUBSYSTEM *, LPBYTE pData, LPBYTE pHWAddr, LPWORD pwHWAddrLength);
MSBDNOUTPUTAPI HRESULT msbdnOutputSetBandwidth (MSBDN_OUTPUT_SUBSYSTEM *, DWORD Bps);
MSBDNOUTPUTAPI HRESULT msbdnOutputSetRoutingInfo (MSBDN_OUTPUT_SUBSYSTEM *, LPVOID pRouteInfo);
MSBDNOUTPUTAPI HRESULT msbdnOutputStreamStatus (MSBDN_OUTPUT_SUBSYSTEM *, WORD wProtocol, LPBYTE pAddress, BOOL isActive);
MSBDNOUTPUTAPI HRESULT msbdnOutputSendPacket (MSBDN_OUTPUT_SUBSYSTEM *, PACKET_BUFFER *);
MSBDNOUTPUTAPI HRESULT msbdnOutputSetValue (MSBDN_OUTPUT_SUBSYSTEM *, MSBDN_OUTPUT_VALUE *);
MSBDNOUTPUTAPI HRESULT msbdnOutputGetValue (MSBDN_OUTPUT_SUBSYSTEM *, MSBDN_OUTPUT_VALUE *);
MSBDNOUTPUTAPI HRESULT msbdnOutputGetValueCount (MSBDN_OUTPUT_SUBSYSTEM *, DWORD *);
MSBDNOUTPUTAPI HRESULT msbdnOutputFreeBuffer (MSBDN_OUTPUT_SUBSYSTEM *, LPVOID);
MSBDNOUTPUTAPI HRESULT msbdnOutputGetStatus (MSBDN_OUTPUT_SUBSYSTEM *, HRESULT *);
#ifdef __cplusplus
}
#endif // __cplusplus
#ifdef IS_BRIDGE_OUTPUT_DRIVER
// driver DLL is expected to provide the instance
extern MSBDN_BRIDGE_CALLBACKS g_BridgeCallbacks;
static __inline DWORD msbdnPacketLength (PACKET_BUFFER * packet)
{
return packet -> End - packet -> Start;
}
static __inline DWORD msbdnPacketMemcpy (LPVOID dest, PACKET_BUFFER * packet, DWORD pos, DWORD length)
{
DWORD buffer_length = packet -> End - packet -> Start;
if (pos > buffer_length)
return 0;
if (pos + length > buffer_length)
length = buffer_length - pos;
memcpy (dest, packet -> Data + pos, length);
return length;
}
static __inline PACKET_BUFFER * msbdnPacketGetData (PACKET_BUFFER * packet, LPBYTE * ret_data, LPDWORD ret_length)
{
if (ret_length) *ret_length = packet -> End - packet -> Start;
if (ret_data) *ret_data = packet -> Data;
return NULL;
}
static __inline HRESULT msbdnBridgeReportState (MSBDN_OUTPUT_SUBSYSTEM * subsystem, DWORD state, LPCSTR message)
{
return (*subsystem -> BridgeCallbacks.ReportState) (subsystem, state, message);
}
static __inline HRESULT msbdnBridgeReportActivity (MSBDN_OUTPUT_SUBSYSTEM * subsystem, WORD type, DWORD amount)
{
return (*subsystem -> BridgeCallbacks.ReportActivity) (subsystem, type, amount);
}
static __inline HRESULT msbdnBridgeReportEvent (MSBDN_OUTPUT_SUBSYSTEM * subsystem, WORD type, DWORD error_code, LPCWSTR message)
{
return (*subsystem -> BridgeCallbacks.ReportEvent)
(subsystem, type, error_code, message);
}
#endif // IS_BRIDGE_OUTPUT_DRIVER
// decorated names for GetProcAddress
#define MSBDN_PROC_MSBDNOUTPUTCREATE "msbdnOutputCreate"
#define MSBDN_PROC_MSBDNOUTPUTDESTROY "msbdnOutputDestroy"
#define MSBDN_PROC_MSBDNOUTPUTGETSTATUS "msbdnOutputGetStatus"
#define MSBDN_PROC_MSBDNOUTPUTSETHWADDR "msbdnOutputSetHWAddr"
#define MSBDN_PROC_MSBDNOUTPUTSETBANDWIDTH "msbdnOutputSetBandwidth"
#define MSBDN_PROC_MSBDNOUTPUTSETROUTINGINFO "msbdnOutputSetRoutingInfo"
#define MSBDN_PROC_MSBDNOUTPUTSTREAMSTATUS "msbdnOutputStreamStatus"
#define MSBDN_PROC_MSBDNOUTPUTSENDPACKET "msbdnOutputSendPacket"
#define MSBDN_PROC_MSBDNOUTPUTSETVALUE "msbdnOutputSetValue"
#define MSBDN_PROC_MSBDNOUTPUTGETVALUE "msbdnOutputGetValue"
#define MSBDN_PROC_MSBDNOUTPUTGETVALUECOUNT "msbdnOutputGetValueCount"
#define MSBDN_PROC_MSBDNOUTPUTFREEBUFFER "msbdnOutputFreeBuffer"
#endif // BRIDGE_H
@@ -0,0 +1,119 @@
/***********************************************************************
** B R P R O P . H *
** *
************************************************************************
** Copyright (C) 1996 by Microsoft Corporation *
** All Rights Reserved *
************************************************************************/
/*
BRPROP.H
BroadcastProperty record object class definitions for Microsoft Guide
*/
#ifndef _BRPROP_H_
#define _BRPROP_H_
#include "dbsets.h"
/*
BroadcastProperty objects are constructed from database records of the BroadcastProperty table.
The CBroadcastPropertyRecordset class is used to select and create CBroadcastProperty objects
from the BroadcastProperty table via functions in the CDatabaseRecordset parent class.
*/
class COMMMSTVEXPORT CBroadcastPropertyRecordset : public CDatabaseRecordset
{
// This class provides BroadcastProperty recordset manipulation via parent functions
virtual CString GetTableName( VOID);
virtual BOOL SetRecordsetObject( VOID* cRecordsetObject);
public:
virtual VOID* GetRecordsetObject( VOID);
virtual BOOLEAN Seek(LPCTSTR lpszComparison, CObject &coo);
virtual BOOLEAN Seek(LPCTSTR lpszComparison, LONG lBroadcastPropertyID);
};
class COMMMSTVEXPORT CBroadcastProperty : public CObject
{
friend class CBroadcastPropertyRecordset; // generates the CBroadcastProperty record object
private:
LONG m_lBroadcastPropertyID;
LONG m_lTuningSpace;
CString m_cszAbbreviation;
CString m_cszName;
LONG m_lDisplayOrder;
CString m_cszPictogramMoniker;
public:
CBroadcastProperty(LONG lBroadcastPropertyID = AFX_RFX_LONG_PSEUDO_NULL,
LONG lTuningSpace = 0,
CString cszAbbreviation = "",
CString cszName = "",
LONG lDisplayOrder = 0,
CString cszPictogramMoniker = "") :
m_lBroadcastPropertyID(lBroadcastPropertyID),
m_lTuningSpace(lTuningSpace),
m_cszAbbreviation(cszAbbreviation),
m_cszName(cszName),
m_lDisplayOrder(lDisplayOrder),
m_cszPictogramMoniker(cszPictogramMoniker) { }
~CBroadcastProperty(VOID) { }
VOID SetTuningSpace( LONG lTuningSpace) { m_lTuningSpace = lTuningSpace; }
VOID SetAbbreviation( LPCTSTR cszAbbreviation) { m_cszAbbreviation = cszAbbreviation; }
VOID SetName( LPCTSTR cszName) { m_cszName = cszName; }
VOID SetDisplayOrder( LONG lDisplayOrder) { m_lDisplayOrder = lDisplayOrder; }
VOID SetPictogramMoniker( LPCTSTR cszPictogramMoniker) { m_cszPictogramMoniker = cszPictogramMoniker; }
LONG BroadcastPropertyID() { return m_lBroadcastPropertyID; }
LONG TuningSpace() { return m_lTuningSpace; }
CString Abbreviation() { return m_cszAbbreviation; }
CString Name() { return m_cszName; }
LONG DisplayOrder() { return m_lDisplayOrder; }
CString PictogramMoniker() { return m_cszPictogramMoniker; }
};
// Table: BroadcastProperty
#define TBL_BroadcastProperty _T("[Broadcast Property]")
// Field: Name Type Size
#define FLD_BroadcastProperty_BroadcastPropertyID _T("BP Broadcast Property ID") // AutoLong 4
#define FLD_BroadcastProperty_TuningSpace _T("BP Tuning Space") // Long 4
#define FLD_BroadcastProperty_Abbreviation _T("BP Abbreviation") // Text 4
#define FLD_BroadcastProperty_Name _T("BP Name") // Text 128
#define FLD_BroadcastProperty_DisplayOrder _T("BP Display Order") // Long 4
#define FLD_BroadcastProperty_PictogramMoniker _T("BP Pictogram Moniker") // Text 255
#endif
@@ -0,0 +1,23 @@
#if !defined(BRTEST_H)
#define BRTEST_H
#include <afxwin.h>
#include <afxdlgs.h>
#include <afxcview.h>
#include <winsock2.h>
// forward declarations
class CUtil ;
class CNIC ;
class CData ;
class CSession ;
class CMulticast ;
class CBridgeRPC ;
class CBradm ;
#endif // BRTEST_H
@@ -0,0 +1,201 @@
/*
* BTTNCUR.H
* Buttons & Cursors Version 1.1, March 1993
*
* Public include file for the Button Images and Cursor DLL, including
* structures, definitions, and function prototypes.
*
* Copyright (c)1992-1996 Microsoft Corporation, All Rights Reserved,
* as applied to redistribution of this source code in source form
* License is granted to use of compiled code in shipped binaries.
*/
#ifndef _BTTNCUR_H_
#define _BTTNCUR_H_
#ifdef __cplusplus
extern "C"
{
#endif
//Standard image bitmap
//WARNING: Obsolete. Use the return from UIToolDisplayData
#define IDB_STANDARDIMAGES 400
//New values for display types
#define IDB_STANDARDIMAGESMIN 400
#define IDB_STANDARDIMAGES96 400
#define IDB_STANDARDIMAGES72 401
#define IDB_STANDARDIMAGES120 402
//Image indices inside the standard bitmap.
#define TOOLIMAGE_MIN 0
#define TOOLIMAGE_EDITCUT 0
#define TOOLIMAGE_EDITCOPY 1
#define TOOLIMAGE_EDITPASTE 2
#define TOOLIMAGE_FILENEW 3
#define TOOLIMAGE_FILEOPEN 4
#define TOOLIMAGE_FILESAVE 5
#define TOOLIMAGE_FILEPRINT 6
#define TOOLIMAGE_HELP 7
#define TOOLIMAGE_HELPCONTEXT 8
#define TOOLIMAGE_MAX 8
//Additional Standard Cursors as defined in the UI Design Guide.
#define IDC_NEWUICURSORMIN 500
#define IDC_RIGHTARROW 500
#define IDC_CONTEXTHELP 501
#define IDC_MAGNIFY 502
#define IDC_NODROP 503
#define IDC_TABLETOP 504
#define IDC_HSIZEBAR 505
#define IDC_VSIZEBAR 506
#define IDC_HSPLITBAR 507
#define IDC_VSPLITBAR 508
#define IDC_SMALLARROWS 509
#define IDC_LARGEARROWS 510
#define IDC_HARROWS 511
#define IDC_VARROWS 512
#define IDC_NESWARROWS 513
#define IDC_NWSEARROWS 514
#define IDC_NEWUICURSORMAX 514
//Standard sizes for toolbar buttons and bitmaps on display types
//WARNING: These are obsolete for version 1.0 compatibility/
#define TOOLBUTTON_STDWIDTH 24
#define TOOLBUTTON_STDHEIGHT 22
#define TOOLBUTTON_STDIMAGEWIDTH 16
#define TOOLBUTTON_STDIMAGEHEIGHT 15
/*
* Applications can call UIToolDisplayData to get the particular
* values to use for the current display instead of using these values
* directly. However, if the application has the aspect ratio already
* then these are available for them.
*/
//Sizes for 72 DPI (EGA)
#define TOOLBUTTON_STD72WIDTH 24
#define TOOLBUTTON_STD72HEIGHT 16
#define TOOLBUTTON_STD72IMAGEWIDTH 16
#define TOOLBUTTON_STD72IMAGEHEIGHT 11
//Sizes for 96 DPI (VGA)
#define TOOLBUTTON_STD96WIDTH 24
#define TOOLBUTTON_STD96HEIGHT 22
#define TOOLBUTTON_STD96IMAGEWIDTH 16
#define TOOLBUTTON_STD96IMAGEHEIGHT 15
//Sizes for 120 DPI (8514/a)
#define TOOLBUTTON_STD120WIDTH 32
#define TOOLBUTTON_STD120HEIGHT 31
#define TOOLBUTTON_STD120IMAGEWIDTH 24
#define TOOLBUTTON_STD120IMAGEHEIGHT 23
//Sizes of a standard button bar depending on the display
#define CYBUTTONBAR72 23
#define CYBUTTONBAR96 29
#define CYBUTTONBAR120 38
/*
* The low-word of the state contains the display state where each
* value is mutually exclusive and contains one or more grouping bits.
* Each group represents buttons that share some sub-state in common.
*
* The high-order byte controls which colors in the source bitmap,
* black, white, gray, and dark gray, are to be converted into the
* system colors COLOR_BTNTEXT, COLOR_HILIGHT, COLOR_BTNFACE, and
* COLOR_BTNSHADOW. Any or all of these bits may be set to allow
* the application control over specific colors.
*
* The actual state values are split into a command group and an
* attribute group. Up, mouse down, and disabled states are identical,
* but only attributes can have down, down disabled, and indeterminate
* states.
*
* BUTTONGROUP_BLANK is defined so an application can draw only the button
* without an image in the up, down, mouse down, or indeterminate
* state, that is, BUTTONGROUP_BLANK is inclusive with BUTTONGROUP_DOWN
* and BUTTONGROUP_LIGHTFACE.
*/
#define BUTTONGROUP_DOWN 0x0001
#define BUTTONGROUP_ACTIVE 0x0002
#define BUTTONGROUP_DISABLED 0x0004
#define BUTTONGROUP_LIGHTFACE 0x0008
#define BUTTONGROUP_BLANK 0x0010
//Command buttons only
#define COMMANDBUTTON_UP (BUTTONGROUP_ACTIVE)
#define COMMANDBUTTON_MOUSEDOWN (BUTTONGROUP_ACTIVE | BUTTONGROUP_DOWN)
#define COMMANDBUTTON_DISABLED (BUTTONGROUP_DISABLED)
//Attribute buttons only
#define ATTRIBUTEBUTTON_UP (BUTTONGROUP_ACTIVE)
#define ATTRIBUTEBUTTON_MOUSEDOWN (BUTTONGROUP_ACTIVE | BUTTONGROUP_DOWN)
#define ATTRIBUTEBUTTON_DISABLED (BUTTONGROUP_DISABLED)
#define ATTRIBUTEBUTTON_DOWN (BUTTONGROUP_ACTIVE | BUTTONGROUP_DOWN | BUTTONGROUP_LIGHTFACE)
#define ATTRIBUTEBUTTON_INDETERMINATE (BUTTONGROUP_ACTIVE | BUTTONGROUP_LIGHTFACE)
#define ATTRIBUTEBUTTON_DOWNDISABLED (BUTTONGROUP_DISABLED | BUTTONGROUP_DOWN | BUTTONGROUP_LIGHTFACE)
//Blank buttons only
#define BLANKBUTTON_UP (BUTTONGROUP_ACTIVE | BUTTONGROUP_BLANK)
#define BLANKBUTTON_DOWN (BUTTONGROUP_ACTIVE | BUTTONGROUP_BLANK | BUTTONGROUP_DOWN | BUTTONGROUP_LIGHTFACE)
#define BLANKBUTTON_MOUSEDOWN (BUTTONGROUP_ACTIVE | BUTTONGROUP_BLANK | BUTTONGROUP_DOWN)
#define BLANKBUTTON_INDETERMINATE (BUTTONGROUP_ACTIVE | BUTTONGROUP_BLANK | BUTTONGROUP_LIGHTFACE)
/*
* Specific bits to prevent conversions of specific colors to system
* colors. If an application uses this newer library and never specified
* any bits, then they benefit from color conversion automatically.
*/
#define PRESERVE_BLACK 0x0100
#define PRESERVE_DKGRAY 0x0200
#define PRESERVE_LTGRAY 0x0400
#define PRESERVE_WHITE 0x0800
#define PRESERVE_ALL (PRESERVE_BLACK | PRESERVE_DKGRAY | PRESERVE_LTGRAY | PRESERVE_WHITE)
#define PRESERVE_NONE 0 //Backwards compatible
//Structure for UIToolConfigureForDisplay
typedef struct tagTOOLDISPLAYDATA
{
UINT uDPI; //Display driver DPI
UINT cyBar; //Vertical size for a bar containing buttons.
UINT cxButton; //Dimensions of a button.
UINT cyButton;
UINT cxImage; //Dimensions of bitmap image
UINT cyImage;
UINT uIDImages; //Standard resource ID for display-sensitive images
} TOOLDISPLAYDATA, FAR *LPTOOLDISPLAYDATA;
//Public functions in BTTNCUR.DLL
HCURSOR WINAPI UICursorLoad(UINT);
BOOL WINAPI UIToolConfigureForDisplay(LPTOOLDISPLAYDATA);
BOOL WINAPI UIToolButtonDraw(HDC, int, int, int, int, HBITMAP, int, int, int, UINT);
BOOL WINAPI UIToolButtonDrawTDD(HDC, int, int, int, int, HBITMAP, int, int, int, UINT, LPTOOLDISPLAYDATA);
#ifdef __cplusplus
}
#endif
#endif //_BTTNCUR_H_
@@ -0,0 +1,116 @@
//=============================================================================
// Microsoft (R) Bloodhound (tm). Copyright (C) 1991-1992.
//
// MODULE: buffer.h
//
// This source file contains defintions for Bloodhound buffers.
//=============================================================================
#if !defined(_BUFFER_)
#define _BUFFER_
#pragma pack(1)
#define BUFFERSIZE ((DWORD) 32768U) //... Size of each buffer (NDIS and ODI NAL's).
#define ONE_MEG 32
#define ONE_HALF_MEG (ONE_MEG / 2)
#define STAT_FRAME_SIZE 1024
//=============================================================================
// Frame type.
//=============================================================================
typedef struct _FRAME
{
DWORD TimeStamp; //... Relative time in milliseconds.
WORD FrameLength; //... MAC frame length.
WORD nBytesAvail; //... Actual frame length copied.
BYTE MacFrame[0]; //... Frame data.
} FRAME;
typedef FRAME *LPFRAME;
typedef FRAME UNALIGNED *ULPFRAME;
#define FRAME_SIZE sizeof(FRAME)
//=============================================================================
// Buffer Table Entry (BTE). This is the private part of the buffer for
// the NDIS 2.0, NDIS 3.0, and ODI nals.
//=============================================================================
typedef struct _BTE *LPBTE;
typedef struct _BTE
{
DWORD ObjectType; //... 'BTE$'. Filled in byt kernel.
DWORD Flags; //... Used by Nal/driver.
LPBTE KrnlModeNext; //... Optional, reserved for NAL usage.
LPBTE Next; //... Pointer to next BTE.
LPFRAME UserModeBuffer; //... User mode buffer pointer.
LPVOID KrnlModeBuffer; //... Kernel mode buffer pointer.
DWORD Length; //... Overall buffer length (in bytes)
DWORD ByteCount; //... Number of bytes in buffer.
DWORD FrameCount; //... Number of frames in buffer.
WORD DropCount; //... Number of dropped frames detected.
WORD TransfersPended; //... Number of transferdatas pended by mac
} BTE;
#define BTE_SIZE sizeof(BTE)
//=============================================================================
// Buffer type.
//=============================================================================
typedef struct _BUFFER
{
//=========================================================================
// PUBLIC portion of BUFFER type. This section is filled in by NAL.DLL.
// The public section is 64 bytes in size.
//=========================================================================
DWORD ObjectType; //... 'BUF$'.
DWORD NetworkID; //... Network ID.
DWORD BufferSize; //... Buffer size requested.
DWORD TotalBytes; //... Total bytes captured.
DWORD TotalFrames; //... Total frames captured.
LPVOID hNetwork; //... Handle of network.
SYSTEMTIME TimeOfCapture; //... Time of capture.
LPBTE StatFrameBTE; //... Pointer to the stat frame
DWORD Reserved[5]; //... Reserved for future use.
//=========================================================================
// PRIVATE portion of BUFFER type. This section is filled by NAL drivers/dlls.
// The private section is 32 bytes in size.
//=========================================================================
// BYTE Private[32]; //... 32 bytes of private space for NAL use.
// start MSINTERNAL
DWORD HeadBTEIndex; //... BTE containing frame #1, filled in by NAL.
DWORD TailBTEIndex; //... BTE containing frame #N, filled in by NAL.
DWORD NumberOfBuffers; //... Total number of BTE's, filled in by kernel.
DWORD NumberOfBuffersUsed;//... Total number of BTE's used, filled in by driver.
DWORD Pad[4]; //... Pad out to 32 bytes.
BTE bte[0]; //... BTE's follow BUFFER structure in memory.
// stop MSINTERNAL
} BUFFER;
typedef BUFFER *HBUFFER;
//=============================================================================
// FUNCTION: GetBteIndex();
//
// Modification History
//
// raypa 07/10/93 Created.
//=============================================================================
#define GetBteIndex(hBuffer, lpBte) ((DWORD) ((lpBte) - (hBuffer)->bte))
#pragma pack()
#endif
@@ -0,0 +1,303 @@
;****************************CallConv.Inc************************************
;
; Copyright (c) 1990-1997, Microsoft Corp. All rights reserved.
;
;****************************************************************************
;****************************Public Macro************************************
;
; ComposeInst Inst,p1,p2,p3,p4,p5,p6,p7,p8,p9
;
; This macro simply concatenates all arguments into one string.
;
;
;****************************************************************************
ComposeInst macro Inst,p1,p2,p3,p4,p5,p6,p7,p8,p9
&Inst p1&p2&p3&p4&p5&p6&p7&p8&p9
endm
;****************************Public Macro************************************
;
; CountArg cCount,ArgList
;
; This macro count the number of arguments in the ArgList and returns
; the value in cCount.
;
;
;****************************************************************************
CountArg macro cCount,ArgList
cCount = 0
irp arg,<ArgList>
cCount = cCount+1
endm
endm
;****************************Public Macro************************************
;
; RevPush ArgList,cCount
;
; This macro pushes the arguments in ArgList in the reverse order
; and returns the number of arguments in cCount.
;
;
;****************************************************************************
RevPush macro ArgList,cCount
Local index,x
CountArg cCount,<ArgList>
index = cCount
rept cCount
x = 0
irp arg,<ArgList>
x = x+1
ife index-x
push arg
exitm
endif
endm
index = index-1
endm
endm
;****************************Public Macro************************************
;
; The following sections contain calling-convention related macros for:
;
; PUBLICP Func,N
; to define a public label
;
; EXTRNP Func,N,Thunk
; to define a external near label
;
; LABELP Func,N
; to label an address as a routine entry point
;
; stdPROC Func,N,ArgList
; to declare a routine header
;
; ProcName Name,Func,N
; to rename a function Func to Name. Using it in conjunction with
; normal function declaration (with the new name) will solve an error
; caused by a long parameter list routine that exhausts page width.
;
; stdRET Func
; to return from Func routines (declared with stdPROC or ProcName.)
;
; stdENDP Func
; to declare the end of routine (declared with stdPROC or ProcName.)
;
; endMod Func
; to declare the end of module with an entry point at Func (declared
; with stdPROC or ProcName.)
;
; stdCall Func,ArgList
; to call to a routine--Func--with the arguments pushed on the stack
;
; MovAddr dest,Func,n
; to move the address of the routine--Func--into dest.
;
; Note that for the standard calling convention all the function names,
; Func, are automatically converted to Func@N where N is the number of
; bytes (decimal) in the argument list.
;
;
;****************************************************************************
if @Version GE 600
option nokeyword:<stdcall>
endif
PUBLICP macro Func,N
ifb <N>
public Func&@0
else
PUBLICP2 Func,%(N*4)
endif
endm
PUBLICP2 macro Func,N
public Func&@&N
endm
EXTRNP macro Func,N,Thunk,FastCall
ifb <N>
IFNDEF Func&@0
extrn Func&@0:NEAR
ENDIF
else
ifb <FastCall>
ifb <Thunk>
EXTRNP2 Func,%(N*4)
else
EXTRNTHUNK Func,%(N*4)
endif
else
cFCall&@&Func equ (N*4)
ifb <Thunk>
EXTRNP2 &@&Func,%(N*4)
else
EXTRNTHUNK &@&Func,%(N*4)
endif
endif
endif
endm
EXTRNP2 macro Func,N
IFNDEF Func&@&N
extrn Func&@&N:NEAR
ENDIF
endm
EXTRNTHUNK macro Func,N
IFNDEF __imp_&Func&@&N
extrn __imp_&Func&@&N:DWORD
ENDIF
endm
LABELP macro Func,N
ifb <N>
Func&@0 label near
else
LABELP2 Func,%(N*4)
endif
endm
LABELP2 macro Func,N
Func&@&N label near
endm
ProcName macro Name,Func,N
ifb <N>
cByte&Func equ 0
Name equ <Func&@0>
else
cByte&Func equ N
Name equ <Func&@&N>
endif
endm
stdPROC macro Func,N,ArgList
ProcName Func,Func,%(N*4)
Func proc ArgList
endm
cPublicProc macro Func,N,ArgList
align dword
PUBLICP Func,N
ifb <N>
stdPROC Func,0,<ArgList>
else
stdPROC Func,N,<ArgList>
endif
endm
ProcNameF macro Name,Func,N,M
cByte&Func equ M
cFCall&Func equ N
Name equ <Func&@&N>
endm
stdPROCF macro Func,N,ArgList
if N gt 2
ProcNameF Func,Func,%(N*4),%((N-2)*4)
else
ProcNameF Func,Func,%(N*4),0
endif
Func proc ArgList
endm
cPublicFastCall macro Func,N,ArgList
align dword
PUBLICP &@&Func,N
ifb <N>
stdPROCF &@&Func,0,<ArgList>
else
stdPROCF &@&Func,N,<ArgList>
endif
endm
fstRET macro Func
ret cByte&@&Func
endm
stdRET macro Func
ret cByte&Func
endm
cPublicFpo macro FpoLocals, FpoParams
.FPO ( FpoParams, FpoLocals, 0, 0, 0, 0 )
endm
fstENDP macro Func
&@&Func endp
endm
stdENDP macro Func
Func endp
endm
endMod macro Func
end Func
endm
stdCallCall macro Func,N
IFDEF __imp_&Func&@&N
call dword ptr [__imp_&Func&@&N]
ELSE
call Func&@&N
ENDIF
endm
stdCall macro Func,ArgList
Local Bytes
RevPush <ArgList>,Bytes
Bytes = Bytes*4
stdCallCall Func,%(Bytes)
endm
fstCall macro Func,ArgList
Local Bytes
RevPush <ArgList>,Bytes
Bytes = Bytes*4
if Bytes eq 0
stdCallCall &@&Func,%cFCall&@&Func
else
; must have 2 register params
stdCallCall &@&Func,%(Bytes+8)
endif
endm
MovAddr macro dest,addr,n
ComposeInst <mov >,dest,<,offset FLAT:>,addr,<@>,n
endm
@@ -0,0 +1,7 @@
// cassert standard header
#include <assert.h>
/*
* Copyright (c) 1994 by P.J. Plauger. ALL RIGHTS RESERVED.
* Consult your license regarding permissions and restrictions.
*/
@@ -0,0 +1,21 @@
// cctype standard header
#if _MSC_VER > 1000
#pragma once
#endif
#ifndef _CCTYPE_
#define _CCTYPE_
#ifdef _STD_USING
#undef _STD_USING
#include <ctype.h>
#define _STD_USING
#else
#include <ctype.h>
#endif /* _STD_USING */
#endif /* _CCTYPE_ */
/*
* Copyright (c) 1994 by P.J. Plauger. ALL RIGHTS RESERVED.
* Consult your license regarding permissions and restrictions.
*/
@@ -0,0 +1,58 @@
/*****************************************************************************\
* *
* cderr.h - Common dialog error return codes *
* *
* Version 1.0 *
* *
* Copyright 1992 - 1998 Microsoft Corp. All rights reserved. *
* *
\*****************************************************************************/
#ifndef _INC_CDERR
#define _INC_CDERR
#define CDERR_DIALOGFAILURE 0xFFFF
#define CDERR_GENERALCODES 0x0000
#define CDERR_STRUCTSIZE 0x0001
#define CDERR_INITIALIZATION 0x0002
#define CDERR_NOTEMPLATE 0x0003
#define CDERR_NOHINSTANCE 0x0004
#define CDERR_LOADSTRFAILURE 0x0005
#define CDERR_FINDRESFAILURE 0x0006
#define CDERR_LOADRESFAILURE 0x0007
#define CDERR_LOCKRESFAILURE 0x0008
#define CDERR_MEMALLOCFAILURE 0x0009
#define CDERR_MEMLOCKFAILURE 0x000A
#define CDERR_NOHOOK 0x000B
#define CDERR_REGISTERMSGFAIL 0x000C
#define PDERR_PRINTERCODES 0x1000
#define PDERR_SETUPFAILURE 0x1001
#define PDERR_PARSEFAILURE 0x1002
#define PDERR_RETDEFFAILURE 0x1003
#define PDERR_LOADDRVFAILURE 0x1004
#define PDERR_GETDEVMODEFAIL 0x1005
#define PDERR_INITFAILURE 0x1006
#define PDERR_NODEVICES 0x1007
#define PDERR_NODEFAULTPRN 0x1008
#define PDERR_DNDMMISMATCH 0x1009
#define PDERR_CREATEICFAILURE 0x100A
#define PDERR_PRINTERNOTFOUND 0x100B
#define PDERR_DEFAULTDIFFERENT 0x100C
#define CFERR_CHOOSEFONTCODES 0x2000
#define CFERR_NOFONTS 0x2001
#define CFERR_MAXLESSTHANMIN 0x2002
#define FNERR_FILENAMECODES 0x3000
#define FNERR_SUBCLASSFAILURE 0x3001
#define FNERR_INVALIDFILENAME 0x3002
#define FNERR_BUFFERTOOSMALL 0x3003
#define FRERR_FINDREPLACECODES 0x4000
#define FRERR_BUFFERLENGTHZERO 0x4001
#define CCERR_CHOOSECOLORCODES 0x5000
#endif /* !_INC_CDERR */
@@ -0,0 +1,63 @@
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright 1992 - 1997 Microsoft Corporation.
//
// File: cdialog.h
//
// Contents: definition for common dialog functionality
//
// Classes: CHlprDialog (pure virtual class)
//
// Functions: DialogProc
//
// History: 4-12-94 stevebl Created
//
//----------------------------------------------------------------------------
#ifndef __CDIALOG_H__
#define __CDIALOG_H__
#ifdef __cplusplus
extern "C" {
#endif
BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
#ifdef __cplusplus
}
//+---------------------------------------------------------------------------
//
// Class: CHlprDialog
//
// Purpose: virtual base class for wrapping Windows' dialog functionality
//
// Interface: ShowDialog -- analagous to the Windows DialogBox function
// DialogProc -- pure virtual DialogProc for the dialog box
// ~CHlprDialog -- destructor
//
// History: 4-12-94 stevebl Created
//
// Notes: This class allows a dialog box to be cleanly wrapped in
// a c++ class. Specifically, it provides a way for a c++ class
// to use one of its methods as a DialogProc, giving it a "this"
// pointer and allowing it to have direct access to all of its
// private members.
//
//----------------------------------------------------------------------------
class CHlprDialog
{
public:
virtual int ShowDialog(HINSTANCE hinst, LPCTSTR lpszTemplate, HWND hwndOwner);
virtual BOOL DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) = 0;
virtual ~CHlprDialog(){};
protected:
HINSTANCE _hInstance;
};
#endif //__cplusplus
#endif //__CDIALOG_H__
@@ -0,0 +1,21 @@
// cerrno standard header
#if _MSC_VER > 1000
#pragma once
#endif
#ifndef _CERRNO_
#define _CERRNO_
#ifdef _STD_USING
#undef _STD_USING
#include <errno.h>
#define _STD_USING
#else
#include <errno.h>
#endif /* _STD_USING */
#endif /* _CERRNO_ */
/*
* Copyright (c) 1994 by P.J. Plauger. ALL RIGHTS RESERVED.
* Consult your license regarding permissions and restrictions.
*/
@@ -0,0 +1,499 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 3.03.0106 */
/* at Mon Aug 04 19:41:30 1997
*/
/* Compiler settings for certadm.idl:
Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: none
*/
//@@MIDL_FILE_HEADING( )
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __certadm_h__
#define __certadm_h__
#ifdef __cplusplus
extern "C"{
#endif
/* Forward Declarations */
#ifndef __ICertAdmin_FWD_DEFINED__
#define __ICertAdmin_FWD_DEFINED__
typedef interface ICertAdmin ICertAdmin;
#endif /* __ICertAdmin_FWD_DEFINED__ */
#ifndef __CCertAdmin_FWD_DEFINED__
#define __CCertAdmin_FWD_DEFINED__
#ifdef __cplusplus
typedef class CCertAdmin CCertAdmin;
#else
typedef struct CCertAdmin CCertAdmin;
#endif /* __cplusplus */
#endif /* __CCertAdmin_FWD_DEFINED__ */
/* header files for imported files */
#include "wtypes.h"
#include "oaidl.h"
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * );
/****************************************
* Generated header for interface: __MIDL_itf_certadm_0000
* at Mon Aug 04 19:41:30 1997
* using MIDL 3.03.0106
****************************************/
/* [local] */
#define CA_DISP_INCOMPLETE ( 0 )
#define CA_DISP_ERROR ( 0x1 )
#define CA_DISP_REVOKED ( 0x2 )
#define CA_DISP_VALID ( 0x3 )
#define CA_DISP_INVALID ( 0x4 )
#define CA_DISP_UNDER_SUBMISSION ( 0x5 )
extern RPC_IF_HANDLE __MIDL_itf_certadm_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_certadm_0000_v0_0_s_ifspec;
#ifndef __ICertAdmin_INTERFACE_DEFINED__
#define __ICertAdmin_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: ICertAdmin
* at Mon Aug 04 19:41:30 1997
* using MIDL 3.03.0106
****************************************/
/* [unique][helpstring][dual][uuid][object] */
EXTERN_C const IID IID_ICertAdmin;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("34df6950-7fb6-11d0-8817-00a0c903b83c")
ICertAdmin : public IDispatch
{
public:
virtual HRESULT STDMETHODCALLTYPE IsValidCertificate(
/* [in] */ const BSTR strConfig,
/* [in] */ const BSTR strSerialNumber,
/* [retval][out] */ LONG __RPC_FAR *pDisposition) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRevocationReason(
/* [retval][out] */ LONG __RPC_FAR *pReason) = 0;
virtual HRESULT STDMETHODCALLTYPE RevokeCertificate(
/* [in] */ const BSTR strConfig,
/* [in] */ const BSTR strSerialNumber,
/* [in] */ LONG Reason,
/* [in] */ DATE Date) = 0;
virtual HRESULT STDMETHODCALLTYPE SetRequestAttributes(
/* [in] */ const BSTR strConfig,
/* [in] */ LONG RequestId,
/* [in] */ const BSTR strAttributes) = 0;
virtual HRESULT STDMETHODCALLTYPE SetCertificateExtension(
/* [in] */ const BSTR strConfig,
/* [in] */ LONG RequestId,
/* [in] */ const BSTR strExtensionName,
/* [in] */ LONG Type,
/* [in] */ LONG Flags,
/* [in] */ const VARIANT __RPC_FAR *pvarValue) = 0;
virtual HRESULT STDMETHODCALLTYPE DenyRequest(
/* [in] */ const BSTR strConfig,
/* [in] */ LONG RequestId) = 0;
virtual HRESULT STDMETHODCALLTYPE ResubmitRequest(
/* [in] */ const BSTR strConfig,
/* [in] */ LONG RequestId,
/* [retval][out] */ LONG __RPC_FAR *pDisposition) = 0;
virtual HRESULT STDMETHODCALLTYPE PublishCRL(
/* [in] */ const BSTR strConfig,
/* [in] */ DATE Date) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCRL(
/* [in] */ const BSTR strConfig,
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrCRL) = 0;
};
#else /* C style interface */
typedef struct ICertAdminVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
ICertAdmin __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
ICertAdmin __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
ICertAdmin __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )(
ICertAdmin __RPC_FAR * This,
/* [out] */ UINT __RPC_FAR *pctinfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )(
ICertAdmin __RPC_FAR * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )(
ICertAdmin __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
/* [in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )(
ICertAdmin __RPC_FAR * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
/* [out] */ VARIANT __RPC_FAR *pVarResult,
/* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
/* [out] */ UINT __RPC_FAR *puArgErr);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *IsValidCertificate )(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ const BSTR strSerialNumber,
/* [retval][out] */ LONG __RPC_FAR *pDisposition);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetRevocationReason )(
ICertAdmin __RPC_FAR * This,
/* [retval][out] */ LONG __RPC_FAR *pReason);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RevokeCertificate )(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ const BSTR strSerialNumber,
/* [in] */ LONG Reason,
/* [in] */ DATE Date);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetRequestAttributes )(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG RequestId,
/* [in] */ const BSTR strAttributes);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetCertificateExtension )(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG RequestId,
/* [in] */ const BSTR strExtensionName,
/* [in] */ LONG Type,
/* [in] */ LONG Flags,
/* [in] */ const VARIANT __RPC_FAR *pvarValue);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *DenyRequest )(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG RequestId);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ResubmitRequest )(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG RequestId,
/* [retval][out] */ LONG __RPC_FAR *pDisposition);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *PublishCRL )(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ DATE Date);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCRL )(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrCRL);
END_INTERFACE
} ICertAdminVtbl;
interface ICertAdmin
{
CONST_VTBL struct ICertAdminVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define ICertAdmin_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define ICertAdmin_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define ICertAdmin_Release(This) \
(This)->lpVtbl -> Release(This)
#define ICertAdmin_GetTypeInfoCount(This,pctinfo) \
(This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
#define ICertAdmin_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
(This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ICertAdmin_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
(This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ICertAdmin_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
(This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define ICertAdmin_IsValidCertificate(This,strConfig,strSerialNumber,pDisposition) \
(This)->lpVtbl -> IsValidCertificate(This,strConfig,strSerialNumber,pDisposition)
#define ICertAdmin_GetRevocationReason(This,pReason) \
(This)->lpVtbl -> GetRevocationReason(This,pReason)
#define ICertAdmin_RevokeCertificate(This,strConfig,strSerialNumber,Reason,Date) \
(This)->lpVtbl -> RevokeCertificate(This,strConfig,strSerialNumber,Reason,Date)
#define ICertAdmin_SetRequestAttributes(This,strConfig,RequestId,strAttributes) \
(This)->lpVtbl -> SetRequestAttributes(This,strConfig,RequestId,strAttributes)
#define ICertAdmin_SetCertificateExtension(This,strConfig,RequestId,strExtensionName,Type,Flags,pvarValue) \
(This)->lpVtbl -> SetCertificateExtension(This,strConfig,RequestId,strExtensionName,Type,Flags,pvarValue)
#define ICertAdmin_DenyRequest(This,strConfig,RequestId) \
(This)->lpVtbl -> DenyRequest(This,strConfig,RequestId)
#define ICertAdmin_ResubmitRequest(This,strConfig,RequestId,pDisposition) \
(This)->lpVtbl -> ResubmitRequest(This,strConfig,RequestId,pDisposition)
#define ICertAdmin_PublishCRL(This,strConfig,Date) \
(This)->lpVtbl -> PublishCRL(This,strConfig,Date)
#define ICertAdmin_GetCRL(This,strConfig,Flags,pstrCRL) \
(This)->lpVtbl -> GetCRL(This,strConfig,Flags,pstrCRL)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE ICertAdmin_IsValidCertificate_Proxy(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ const BSTR strSerialNumber,
/* [retval][out] */ LONG __RPC_FAR *pDisposition);
void __RPC_STUB ICertAdmin_IsValidCertificate_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertAdmin_GetRevocationReason_Proxy(
ICertAdmin __RPC_FAR * This,
/* [retval][out] */ LONG __RPC_FAR *pReason);
void __RPC_STUB ICertAdmin_GetRevocationReason_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertAdmin_RevokeCertificate_Proxy(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ const BSTR strSerialNumber,
/* [in] */ LONG Reason,
/* [in] */ DATE Date);
void __RPC_STUB ICertAdmin_RevokeCertificate_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertAdmin_SetRequestAttributes_Proxy(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG RequestId,
/* [in] */ const BSTR strAttributes);
void __RPC_STUB ICertAdmin_SetRequestAttributes_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertAdmin_SetCertificateExtension_Proxy(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG RequestId,
/* [in] */ const BSTR strExtensionName,
/* [in] */ LONG Type,
/* [in] */ LONG Flags,
/* [in] */ const VARIANT __RPC_FAR *pvarValue);
void __RPC_STUB ICertAdmin_SetCertificateExtension_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertAdmin_DenyRequest_Proxy(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG RequestId);
void __RPC_STUB ICertAdmin_DenyRequest_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertAdmin_ResubmitRequest_Proxy(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG RequestId,
/* [retval][out] */ LONG __RPC_FAR *pDisposition);
void __RPC_STUB ICertAdmin_ResubmitRequest_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertAdmin_PublishCRL_Proxy(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ DATE Date);
void __RPC_STUB ICertAdmin_PublishCRL_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertAdmin_GetCRL_Proxy(
ICertAdmin __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrCRL);
void __RPC_STUB ICertAdmin_GetCRL_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __ICertAdmin_INTERFACE_DEFINED__ */
#ifndef __CERTADMINLib_LIBRARY_DEFINED__
#define __CERTADMINLib_LIBRARY_DEFINED__
/****************************************
* Generated header for library: CERTADMINLib
* at Mon Aug 04 19:41:30 1997
* using MIDL 3.03.0106
****************************************/
/* [helpstring][version][uuid] */
EXTERN_C const IID LIBID_CERTADMINLib;
EXTERN_C const CLSID CLSID_CCertAdmin;
#ifdef __cplusplus
class DECLSPEC_UUID("37eabaf0-7fb6-11d0-8817-00a0c903b83c")
CCertAdmin;
#endif
#endif /* __CERTADMINLib_LIBRARY_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
unsigned long __RPC_USER BSTR_UserSize( unsigned long __RPC_FAR *, unsigned long , BSTR __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER BSTR_UserMarshal( unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER BSTR_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * );
void __RPC_USER BSTR_UserFree( unsigned long __RPC_FAR *, BSTR __RPC_FAR * );
unsigned long __RPC_USER VARIANT_UserSize( unsigned long __RPC_FAR *, unsigned long , VARIANT __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER VARIANT_UserMarshal( unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER VARIANT_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * );
void __RPC_USER VARIANT_UserFree( unsigned long __RPC_FAR *, VARIANT __RPC_FAR * );
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif
@@ -0,0 +1,858 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 3.03.0106 */
/* at Mon Aug 04 19:41:32 1997
*/
/* Compiler settings for certcli.idl:
Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: none
*/
//@@MIDL_FILE_HEADING( )
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __certcli_h__
#define __certcli_h__
#ifdef __cplusplus
extern "C"{
#endif
/* Forward Declarations */
#ifndef __ICertGetConfig_FWD_DEFINED__
#define __ICertGetConfig_FWD_DEFINED__
typedef interface ICertGetConfig ICertGetConfig;
#endif /* __ICertGetConfig_FWD_DEFINED__ */
#ifndef __ICertConfig_FWD_DEFINED__
#define __ICertConfig_FWD_DEFINED__
typedef interface ICertConfig ICertConfig;
#endif /* __ICertConfig_FWD_DEFINED__ */
#ifndef __ICertRequest_FWD_DEFINED__
#define __ICertRequest_FWD_DEFINED__
typedef interface ICertRequest ICertRequest;
#endif /* __ICertRequest_FWD_DEFINED__ */
#ifndef __CCertGetConfig_FWD_DEFINED__
#define __CCertGetConfig_FWD_DEFINED__
#ifdef __cplusplus
typedef class CCertGetConfig CCertGetConfig;
#else
typedef struct CCertGetConfig CCertGetConfig;
#endif /* __cplusplus */
#endif /* __CCertGetConfig_FWD_DEFINED__ */
#ifndef __CCertConfig_FWD_DEFINED__
#define __CCertConfig_FWD_DEFINED__
#ifdef __cplusplus
typedef class CCertConfig CCertConfig;
#else
typedef struct CCertConfig CCertConfig;
#endif /* __cplusplus */
#endif /* __CCertConfig_FWD_DEFINED__ */
#ifndef __CCertRequest_FWD_DEFINED__
#define __CCertRequest_FWD_DEFINED__
#ifdef __cplusplus
typedef class CCertRequest CCertRequest;
#else
typedef struct CCertRequest CCertRequest;
#endif /* __cplusplus */
#endif /* __CCertRequest_FWD_DEFINED__ */
/* header files for imported files */
#include "wtypes.h"
#include "oaidl.h"
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * );
#ifndef __ICertGetConfig_INTERFACE_DEFINED__
#define __ICertGetConfig_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: ICertGetConfig
* at Mon Aug 04 19:41:32 1997
* using MIDL 3.03.0106
****************************************/
/* [unique][helpstring][dual][uuid][object] */
EXTERN_C const IID IID_ICertGetConfig;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("c7ea09c0-ce17-11d0-8833-00a0c903b83c")
ICertGetConfig : public IDispatch
{
public:
virtual HRESULT STDMETHODCALLTYPE GetConfig(
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrOut) = 0;
};
#else /* C style interface */
typedef struct ICertGetConfigVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
ICertGetConfig __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
ICertGetConfig __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
ICertGetConfig __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )(
ICertGetConfig __RPC_FAR * This,
/* [out] */ UINT __RPC_FAR *pctinfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )(
ICertGetConfig __RPC_FAR * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )(
ICertGetConfig __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
/* [in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )(
ICertGetConfig __RPC_FAR * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
/* [out] */ VARIANT __RPC_FAR *pVarResult,
/* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
/* [out] */ UINT __RPC_FAR *puArgErr);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetConfig )(
ICertGetConfig __RPC_FAR * This,
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrOut);
END_INTERFACE
} ICertGetConfigVtbl;
interface ICertGetConfig
{
CONST_VTBL struct ICertGetConfigVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define ICertGetConfig_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define ICertGetConfig_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define ICertGetConfig_Release(This) \
(This)->lpVtbl -> Release(This)
#define ICertGetConfig_GetTypeInfoCount(This,pctinfo) \
(This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
#define ICertGetConfig_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
(This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ICertGetConfig_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
(This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ICertGetConfig_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
(This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define ICertGetConfig_GetConfig(This,Flags,pstrOut) \
(This)->lpVtbl -> GetConfig(This,Flags,pstrOut)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE ICertGetConfig_GetConfig_Proxy(
ICertGetConfig __RPC_FAR * This,
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrOut);
void __RPC_STUB ICertGetConfig_GetConfig_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __ICertGetConfig_INTERFACE_DEFINED__ */
#ifndef __ICertConfig_INTERFACE_DEFINED__
#define __ICertConfig_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: ICertConfig
* at Mon Aug 04 19:41:32 1997
* using MIDL 3.03.0106
****************************************/
/* [unique][helpstring][dual][uuid][object] */
EXTERN_C const IID IID_ICertConfig;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("372fce34-4324-11d0-8810-00a0c903b83c")
ICertConfig : public IDispatch
{
public:
virtual HRESULT STDMETHODCALLTYPE Reset(
/* [in] */ LONG Index,
/* [retval][out] */ LONG __RPC_FAR *pCount) = 0;
virtual HRESULT STDMETHODCALLTYPE Next(
/* [retval][out] */ LONG __RPC_FAR *pIndex) = 0;
virtual HRESULT STDMETHODCALLTYPE GetField(
/* [in] */ const BSTR strFieldName,
/* [retval][out] */ BSTR __RPC_FAR *pstrOut) = 0;
virtual HRESULT STDMETHODCALLTYPE GetConfig(
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrOut) = 0;
};
#else /* C style interface */
typedef struct ICertConfigVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
ICertConfig __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
ICertConfig __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
ICertConfig __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )(
ICertConfig __RPC_FAR * This,
/* [out] */ UINT __RPC_FAR *pctinfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )(
ICertConfig __RPC_FAR * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )(
ICertConfig __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
/* [in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )(
ICertConfig __RPC_FAR * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
/* [out] */ VARIANT __RPC_FAR *pVarResult,
/* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
/* [out] */ UINT __RPC_FAR *puArgErr);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Reset )(
ICertConfig __RPC_FAR * This,
/* [in] */ LONG Index,
/* [retval][out] */ LONG __RPC_FAR *pCount);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Next )(
ICertConfig __RPC_FAR * This,
/* [retval][out] */ LONG __RPC_FAR *pIndex);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetField )(
ICertConfig __RPC_FAR * This,
/* [in] */ const BSTR strFieldName,
/* [retval][out] */ BSTR __RPC_FAR *pstrOut);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetConfig )(
ICertConfig __RPC_FAR * This,
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrOut);
END_INTERFACE
} ICertConfigVtbl;
interface ICertConfig
{
CONST_VTBL struct ICertConfigVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define ICertConfig_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define ICertConfig_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define ICertConfig_Release(This) \
(This)->lpVtbl -> Release(This)
#define ICertConfig_GetTypeInfoCount(This,pctinfo) \
(This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
#define ICertConfig_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
(This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ICertConfig_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
(This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ICertConfig_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
(This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define ICertConfig_Reset(This,Index,pCount) \
(This)->lpVtbl -> Reset(This,Index,pCount)
#define ICertConfig_Next(This,pIndex) \
(This)->lpVtbl -> Next(This,pIndex)
#define ICertConfig_GetField(This,strFieldName,pstrOut) \
(This)->lpVtbl -> GetField(This,strFieldName,pstrOut)
#define ICertConfig_GetConfig(This,Flags,pstrOut) \
(This)->lpVtbl -> GetConfig(This,Flags,pstrOut)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE ICertConfig_Reset_Proxy(
ICertConfig __RPC_FAR * This,
/* [in] */ LONG Index,
/* [retval][out] */ LONG __RPC_FAR *pCount);
void __RPC_STUB ICertConfig_Reset_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertConfig_Next_Proxy(
ICertConfig __RPC_FAR * This,
/* [retval][out] */ LONG __RPC_FAR *pIndex);
void __RPC_STUB ICertConfig_Next_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertConfig_GetField_Proxy(
ICertConfig __RPC_FAR * This,
/* [in] */ const BSTR strFieldName,
/* [retval][out] */ BSTR __RPC_FAR *pstrOut);
void __RPC_STUB ICertConfig_GetField_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertConfig_GetConfig_Proxy(
ICertConfig __RPC_FAR * This,
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrOut);
void __RPC_STUB ICertConfig_GetConfig_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __ICertConfig_INTERFACE_DEFINED__ */
/****************************************
* Generated header for interface: __MIDL_itf_certcli_0097
* at Mon Aug 04 19:41:32 1997
* using MIDL 3.03.0106
****************************************/
/* [local] */
#define CR_IN_BASE64HEADER ( 0 )
#define CR_IN_BASE64 ( 0x1 )
#define CR_IN_BINARY ( 0x2 )
#define CR_IN_ENCODEMASK ( 0xff )
#define CR_IN_PKCS10 ( 0x100 )
#define CR_IN_KEYGEN ( 0x200 )
#define CR_IN_FORMATMASK ( 0xff00 )
#define CR_IN_ENCRYPTED_REQUEST ( 0x10000 )
#define CR_IN_ENCRYPTED_ATTRIBUTES ( 0x20000 )
#define CR_DISP_INCOMPLETE ( 0 )
#define CR_DISP_ERROR ( 0x1 )
#define CR_DISP_DENIED ( 0x2 )
#define CR_DISP_ISSUED ( 0x3 )
#define CR_DISP_ISSUED_OUT_OF_BAND ( 0x4 )
#define CR_DISP_UNDER_SUBMISSION ( 0x5 )
#define CR_OUT_BASE64HEADER ( 0 )
#define CR_OUT_BASE64 ( 0x1 )
#define CR_OUT_BINARY ( 0x2 )
#define CR_OUT_ENCODEMASK ( 0xff )
#define CR_OUT_CHAIN ( 0x100 )
extern RPC_IF_HANDLE __MIDL_itf_certcli_0097_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_certcli_0097_v0_0_s_ifspec;
#ifndef __ICertRequest_INTERFACE_DEFINED__
#define __ICertRequest_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: ICertRequest
* at Mon Aug 04 19:41:32 1997
* using MIDL 3.03.0106
****************************************/
/* [unique][helpstring][dual][uuid][object] */
EXTERN_C const IID IID_ICertRequest;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("014e4840-5523-11d0-8812-00a0c903b83c")
ICertRequest : public IDispatch
{
public:
virtual HRESULT STDMETHODCALLTYPE Submit(
/* [in] */ LONG Flags,
/* [in] */ const BSTR strRequest,
/* [in] */ const BSTR strAttributes,
/* [in] */ const BSTR strConfig,
/* [retval][out] */ LONG __RPC_FAR *pDisposition) = 0;
virtual HRESULT STDMETHODCALLTYPE RetrievePending(
/* [in] */ LONG RequestId,
/* [in] */ const BSTR strConfig,
/* [retval][out] */ LONG __RPC_FAR *pDisposition) = 0;
virtual HRESULT STDMETHODCALLTYPE GetLastStatus(
/* [retval][out] */ LONG __RPC_FAR *pStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRequestId(
/* [retval][out] */ LONG __RPC_FAR *pRequestId) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDispositionMessage(
/* [retval][out] */ BSTR __RPC_FAR *pstrDispositionMessage) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCACertificate(
/* [in] */ LONG fExchangeCertificate,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrCertificate) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCertificate(
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrCertificate) = 0;
};
#else /* C style interface */
typedef struct ICertRequestVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
ICertRequest __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
ICertRequest __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
ICertRequest __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )(
ICertRequest __RPC_FAR * This,
/* [out] */ UINT __RPC_FAR *pctinfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )(
ICertRequest __RPC_FAR * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )(
ICertRequest __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
/* [in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )(
ICertRequest __RPC_FAR * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
/* [out] */ VARIANT __RPC_FAR *pVarResult,
/* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
/* [out] */ UINT __RPC_FAR *puArgErr);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Submit )(
ICertRequest __RPC_FAR * This,
/* [in] */ LONG Flags,
/* [in] */ const BSTR strRequest,
/* [in] */ const BSTR strAttributes,
/* [in] */ const BSTR strConfig,
/* [retval][out] */ LONG __RPC_FAR *pDisposition);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RetrievePending )(
ICertRequest __RPC_FAR * This,
/* [in] */ LONG RequestId,
/* [in] */ const BSTR strConfig,
/* [retval][out] */ LONG __RPC_FAR *pDisposition);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetLastStatus )(
ICertRequest __RPC_FAR * This,
/* [retval][out] */ LONG __RPC_FAR *pStatus);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetRequestId )(
ICertRequest __RPC_FAR * This,
/* [retval][out] */ LONG __RPC_FAR *pRequestId);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetDispositionMessage )(
ICertRequest __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrDispositionMessage);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCACertificate )(
ICertRequest __RPC_FAR * This,
/* [in] */ LONG fExchangeCertificate,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrCertificate);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCertificate )(
ICertRequest __RPC_FAR * This,
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrCertificate);
END_INTERFACE
} ICertRequestVtbl;
interface ICertRequest
{
CONST_VTBL struct ICertRequestVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define ICertRequest_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define ICertRequest_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define ICertRequest_Release(This) \
(This)->lpVtbl -> Release(This)
#define ICertRequest_GetTypeInfoCount(This,pctinfo) \
(This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
#define ICertRequest_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
(This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ICertRequest_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
(This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ICertRequest_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
(This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define ICertRequest_Submit(This,Flags,strRequest,strAttributes,strConfig,pDisposition) \
(This)->lpVtbl -> Submit(This,Flags,strRequest,strAttributes,strConfig,pDisposition)
#define ICertRequest_RetrievePending(This,RequestId,strConfig,pDisposition) \
(This)->lpVtbl -> RetrievePending(This,RequestId,strConfig,pDisposition)
#define ICertRequest_GetLastStatus(This,pStatus) \
(This)->lpVtbl -> GetLastStatus(This,pStatus)
#define ICertRequest_GetRequestId(This,pRequestId) \
(This)->lpVtbl -> GetRequestId(This,pRequestId)
#define ICertRequest_GetDispositionMessage(This,pstrDispositionMessage) \
(This)->lpVtbl -> GetDispositionMessage(This,pstrDispositionMessage)
#define ICertRequest_GetCACertificate(This,fExchangeCertificate,strConfig,Flags,pstrCertificate) \
(This)->lpVtbl -> GetCACertificate(This,fExchangeCertificate,strConfig,Flags,pstrCertificate)
#define ICertRequest_GetCertificate(This,Flags,pstrCertificate) \
(This)->lpVtbl -> GetCertificate(This,Flags,pstrCertificate)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE ICertRequest_Submit_Proxy(
ICertRequest __RPC_FAR * This,
/* [in] */ LONG Flags,
/* [in] */ const BSTR strRequest,
/* [in] */ const BSTR strAttributes,
/* [in] */ const BSTR strConfig,
/* [retval][out] */ LONG __RPC_FAR *pDisposition);
void __RPC_STUB ICertRequest_Submit_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertRequest_RetrievePending_Proxy(
ICertRequest __RPC_FAR * This,
/* [in] */ LONG RequestId,
/* [in] */ const BSTR strConfig,
/* [retval][out] */ LONG __RPC_FAR *pDisposition);
void __RPC_STUB ICertRequest_RetrievePending_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertRequest_GetLastStatus_Proxy(
ICertRequest __RPC_FAR * This,
/* [retval][out] */ LONG __RPC_FAR *pStatus);
void __RPC_STUB ICertRequest_GetLastStatus_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertRequest_GetRequestId_Proxy(
ICertRequest __RPC_FAR * This,
/* [retval][out] */ LONG __RPC_FAR *pRequestId);
void __RPC_STUB ICertRequest_GetRequestId_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertRequest_GetDispositionMessage_Proxy(
ICertRequest __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrDispositionMessage);
void __RPC_STUB ICertRequest_GetDispositionMessage_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertRequest_GetCACertificate_Proxy(
ICertRequest __RPC_FAR * This,
/* [in] */ LONG fExchangeCertificate,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrCertificate);
void __RPC_STUB ICertRequest_GetCACertificate_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertRequest_GetCertificate_Proxy(
ICertRequest __RPC_FAR * This,
/* [in] */ LONG Flags,
/* [retval][out] */ BSTR __RPC_FAR *pstrCertificate);
void __RPC_STUB ICertRequest_GetCertificate_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __ICertRequest_INTERFACE_DEFINED__ */
#ifndef __CERTCLIENTLib_LIBRARY_DEFINED__
#define __CERTCLIENTLib_LIBRARY_DEFINED__
/****************************************
* Generated header for library: CERTCLIENTLib
* at Mon Aug 04 19:41:32 1997
* using MIDL 3.03.0106
****************************************/
/* [helpstring][version][uuid] */
EXTERN_C const IID LIBID_CERTCLIENTLib;
EXTERN_C const CLSID CLSID_CCertGetConfig;
#ifdef __cplusplus
class DECLSPEC_UUID("c6cc49b0-ce17-11d0-8833-00a0c903b83c")
CCertGetConfig;
#endif
EXTERN_C const CLSID CLSID_CCertConfig;
#ifdef __cplusplus
class DECLSPEC_UUID("372fce38-4324-11d0-8810-00a0c903b83c")
CCertConfig;
#endif
EXTERN_C const CLSID CLSID_CCertRequest;
#ifdef __cplusplus
class DECLSPEC_UUID("98aff3f0-5524-11d0-8812-00a0c903b83c")
CCertRequest;
#endif
#endif /* __CERTCLIENTLib_LIBRARY_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
unsigned long __RPC_USER BSTR_UserSize( unsigned long __RPC_FAR *, unsigned long , BSTR __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER BSTR_UserMarshal( unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER BSTR_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * );
void __RPC_USER BSTR_UserFree( unsigned long __RPC_FAR *, BSTR __RPC_FAR * );
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,318 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 3.03.0106 */
/* at Mon Aug 04 19:41:37 1997
*/
/* Compiler settings for certexit.idl:
Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: none
*/
//@@MIDL_FILE_HEADING( )
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __certexit_h__
#define __certexit_h__
#ifdef __cplusplus
extern "C"{
#endif
/* Forward Declarations */
#ifndef __ICertExit_FWD_DEFINED__
#define __ICertExit_FWD_DEFINED__
typedef interface ICertExit ICertExit;
#endif /* __ICertExit_FWD_DEFINED__ */
#ifndef __CCertExit_FWD_DEFINED__
#define __CCertExit_FWD_DEFINED__
#ifdef __cplusplus
typedef class CCertExit CCertExit;
#else
typedef struct CCertExit CCertExit;
#endif /* __cplusplus */
#endif /* __CCertExit_FWD_DEFINED__ */
/* header files for imported files */
#include "wtypes.h"
#include "oaidl.h"
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * );
/****************************************
* Generated header for interface: __MIDL_itf_certexit_0000
* at Mon Aug 04 19:41:37 1997
* using MIDL 3.03.0106
****************************************/
/* [local] */
#define EXITEVENT_INVALID ( 0 )
#define EXITEVENT_CERTISSUED ( 0x1 )
#define EXITEVENT_CERTPENDING ( 0x2 )
#define EXITEVENT_CERTDENIED ( 0x4 )
#define EXITEVENT_CERTREVOKED ( 0x8 )
#define EXITEVENT_CERTRETRIEVEPENDING ( 0x10 )
#define EXITEVENT_CRLISSUED ( 0x20 )
#define EXITEVENT_SHUTDOWN ( 0x40 )
extern RPC_IF_HANDLE __MIDL_itf_certexit_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_certexit_0000_v0_0_s_ifspec;
#ifndef __ICertExit_INTERFACE_DEFINED__
#define __ICertExit_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: ICertExit
* at Mon Aug 04 19:41:37 1997
* using MIDL 3.03.0106
****************************************/
/* [unique][helpstring][dual][uuid][object] */
EXTERN_C const IID IID_ICertExit;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("e19ae1a0-7364-11d0-8816-00a0c903b83c")
ICertExit : public IDispatch
{
public:
virtual HRESULT STDMETHODCALLTYPE Initialize(
/* [in] */ const BSTR strConfig,
/* [retval][out] */ LONG __RPC_FAR *pEventMask) = 0;
virtual HRESULT STDMETHODCALLTYPE Notify(
/* [in] */ LONG Event,
/* [in] */ LONG Context) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDescription(
/* [retval][out] */ BSTR __RPC_FAR *pstrDescription) = 0;
};
#else /* C style interface */
typedef struct ICertExitVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
ICertExit __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
ICertExit __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
ICertExit __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )(
ICertExit __RPC_FAR * This,
/* [out] */ UINT __RPC_FAR *pctinfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )(
ICertExit __RPC_FAR * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )(
ICertExit __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
/* [in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )(
ICertExit __RPC_FAR * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
/* [out] */ VARIANT __RPC_FAR *pVarResult,
/* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
/* [out] */ UINT __RPC_FAR *puArgErr);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Initialize )(
ICertExit __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [retval][out] */ LONG __RPC_FAR *pEventMask);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Notify )(
ICertExit __RPC_FAR * This,
/* [in] */ LONG Event,
/* [in] */ LONG Context);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetDescription )(
ICertExit __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrDescription);
END_INTERFACE
} ICertExitVtbl;
interface ICertExit
{
CONST_VTBL struct ICertExitVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define ICertExit_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define ICertExit_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define ICertExit_Release(This) \
(This)->lpVtbl -> Release(This)
#define ICertExit_GetTypeInfoCount(This,pctinfo) \
(This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
#define ICertExit_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
(This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ICertExit_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
(This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ICertExit_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
(This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define ICertExit_Initialize(This,strConfig,pEventMask) \
(This)->lpVtbl -> Initialize(This,strConfig,pEventMask)
#define ICertExit_Notify(This,Event,Context) \
(This)->lpVtbl -> Notify(This,Event,Context)
#define ICertExit_GetDescription(This,pstrDescription) \
(This)->lpVtbl -> GetDescription(This,pstrDescription)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE ICertExit_Initialize_Proxy(
ICertExit __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [retval][out] */ LONG __RPC_FAR *pEventMask);
void __RPC_STUB ICertExit_Initialize_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertExit_Notify_Proxy(
ICertExit __RPC_FAR * This,
/* [in] */ LONG Event,
/* [in] */ LONG Context);
void __RPC_STUB ICertExit_Notify_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertExit_GetDescription_Proxy(
ICertExit __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrDescription);
void __RPC_STUB ICertExit_GetDescription_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __ICertExit_INTERFACE_DEFINED__ */
#ifndef __CERTEXITLib_LIBRARY_DEFINED__
#define __CERTEXITLib_LIBRARY_DEFINED__
/****************************************
* Generated header for library: CERTEXITLib
* at Mon Aug 04 19:41:37 1997
* using MIDL 3.03.0106
****************************************/
/* [helpstring][version][uuid] */
EXTERN_C const IID LIBID_CERTEXITLib;
EXTERN_C const CLSID CLSID_CCertExit;
#ifdef __cplusplus
class DECLSPEC_UUID("c9e6e410-7364-11d0-8816-00a0c903b83c")
CCertExit;
#endif
#endif /* __CERTEXITLib_LIBRARY_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
unsigned long __RPC_USER BSTR_UserSize( unsigned long __RPC_FAR *, unsigned long , BSTR __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER BSTR_UserMarshal( unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER BSTR_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * );
void __RPC_USER BSTR_UserFree( unsigned long __RPC_FAR *, BSTR __RPC_FAR * );
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif
@@ -0,0 +1,50 @@
//+--------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright 1996 - 1998 Microsoft Corporation
//
// File: certext.h
//
// Contents: Definitions and OIDs for standard Certificate Extensions
//
//---------------------------------------------------------------------------
//+--------------------------------------------------------------------------
// Predefined certificate extension data structures that can be encoded/decoded
// via wincrypt.h's CryptEncodeObject/CryptDecodeObject.
//---------------------------------------------------------------------------
#ifndef __CERTEXT_H__
#define __CERTEXT_H__
#ifdef __cplusplus
extern "C" {
#endif
// Table entries
#define ENC_SAMPLE1_REQUEST_STRUCT ((LPCSTR) 3000)
#define ENC_SAMPLE2_REQUEST_STRUCT ((LPCSTR) 3001)
typedef struct _CERT_SAMPLE_STRUCTURE1_INFO
{
DWORD dwVersion;
WCHAR *pwszField1;
WCHAR *pwszField2;
LONG lField3;
CRYPT_DATA_BLOB blobField4;
FILETIME dateField5;
} CERT_SAMPLE_STRUCTURE1_INFO;
typedef struct _CERT_SAMPLE_STRUCTURE2_INFO
{
DWORD dwVersion;
LONG lField1;
WCHAR *pwszField2;
FILETIME dateField3;
} CERT_SAMPLE_STRUCTURE2_INFO;
#ifdef __cplusplus
}
#endif
#endif // __CERTEXT_H__
@@ -0,0 +1,995 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 3.03.0106 */
/* at Mon Aug 04 19:41:38 1997
*/
/* Compiler settings for certif.idl:
Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: none
*/
//@@MIDL_FILE_HEADING( )
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __certif_h__
#define __certif_h__
#ifdef __cplusplus
extern "C"{
#endif
/* Forward Declarations */
#ifndef __ICertServerPolicy_FWD_DEFINED__
#define __ICertServerPolicy_FWD_DEFINED__
typedef interface ICertServerPolicy ICertServerPolicy;
#endif /* __ICertServerPolicy_FWD_DEFINED__ */
#ifndef __ICertServerExit_FWD_DEFINED__
#define __ICertServerExit_FWD_DEFINED__
typedef interface ICertServerExit ICertServerExit;
#endif /* __ICertServerExit_FWD_DEFINED__ */
#ifndef __CCertServerPolicy_FWD_DEFINED__
#define __CCertServerPolicy_FWD_DEFINED__
#ifdef __cplusplus
typedef class CCertServerPolicy CCertServerPolicy;
#else
typedef struct CCertServerPolicy CCertServerPolicy;
#endif /* __cplusplus */
#endif /* __CCertServerPolicy_FWD_DEFINED__ */
#ifndef __CCertServerExit_FWD_DEFINED__
#define __CCertServerExit_FWD_DEFINED__
#ifdef __cplusplus
typedef class CCertServerExit CCertServerExit;
#else
typedef struct CCertServerExit CCertServerExit;
#endif /* __cplusplus */
#endif /* __CCertServerExit_FWD_DEFINED__ */
/* header files for imported files */
#include "wtypes.h"
#include "oaidl.h"
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * );
/****************************************
* Generated header for interface: __MIDL_itf_certif_0000
* at Mon Aug 04 19:41:38 1997
* using MIDL 3.03.0106
****************************************/
/* [local] */
#define ENUMEXT_OBJECTID ( 0x1 )
extern RPC_IF_HANDLE __MIDL_itf_certif_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_certif_0000_v0_0_s_ifspec;
#ifndef __ICertServerPolicy_INTERFACE_DEFINED__
#define __ICertServerPolicy_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: ICertServerPolicy
* at Mon Aug 04 19:41:38 1997
* using MIDL 3.03.0106
****************************************/
/* [unique][helpstring][dual][uuid][object] */
EXTERN_C const IID IID_ICertServerPolicy;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("aa000922-ffbe-11cf-8800-00a0c903b83c")
ICertServerPolicy : public IDispatch
{
public:
virtual HRESULT STDMETHODCALLTYPE SetContext(
/* [in] */ LONG Context) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRequestProperty(
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [retval][out] */ VARIANT __RPC_FAR *pvarPropertyValue) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRequestAttribute(
/* [in] */ const BSTR strAttributeName,
/* [retval][out] */ BSTR __RPC_FAR *pstrAttributeValue) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCertificateProperty(
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [retval][out] */ VARIANT __RPC_FAR *pvarPropertyValue) = 0;
virtual HRESULT STDMETHODCALLTYPE SetCertificateProperty(
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [in] */ const VARIANT __RPC_FAR *pvarPropertyValue) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCertificateExtension(
/* [in] */ const BSTR strExtensionName,
/* [in] */ LONG Type,
/* [retval][out] */ VARIANT __RPC_FAR *pvarValue) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCertificateExtensionFlags(
/* [retval][out] */ LONG __RPC_FAR *pExtFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE SetCertificateExtension(
/* [in] */ const BSTR strExtensionName,
/* [in] */ LONG Type,
/* [in] */ LONG ExtFlags,
/* [in] */ const VARIANT __RPC_FAR *pvarValue) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumerateExtensionsSetup(
/* [in] */ LONG Flags) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumerateExtensions(
/* [retval][out] */ BSTR __RPC_FAR *pstrExtensionName) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumerateExtensionsClose( void) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumerateAttributesSetup(
/* [in] */ LONG Flags) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumerateAttributes(
/* [retval][out] */ BSTR __RPC_FAR *pstrAttributeName) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumerateAttributesClose( void) = 0;
};
#else /* C style interface */
typedef struct ICertServerPolicyVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
ICertServerPolicy __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
ICertServerPolicy __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )(
ICertServerPolicy __RPC_FAR * This,
/* [out] */ UINT __RPC_FAR *pctinfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
/* [in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
/* [out] */ VARIANT __RPC_FAR *pVarResult,
/* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
/* [out] */ UINT __RPC_FAR *puArgErr);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetContext )(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ LONG Context);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetRequestProperty )(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [retval][out] */ VARIANT __RPC_FAR *pvarPropertyValue);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetRequestAttribute )(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ const BSTR strAttributeName,
/* [retval][out] */ BSTR __RPC_FAR *pstrAttributeValue);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCertificateProperty )(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [retval][out] */ VARIANT __RPC_FAR *pvarPropertyValue);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetCertificateProperty )(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [in] */ const VARIANT __RPC_FAR *pvarPropertyValue);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCertificateExtension )(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ const BSTR strExtensionName,
/* [in] */ LONG Type,
/* [retval][out] */ VARIANT __RPC_FAR *pvarValue);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCertificateExtensionFlags )(
ICertServerPolicy __RPC_FAR * This,
/* [retval][out] */ LONG __RPC_FAR *pExtFlags);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetCertificateExtension )(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ const BSTR strExtensionName,
/* [in] */ LONG Type,
/* [in] */ LONG ExtFlags,
/* [in] */ const VARIANT __RPC_FAR *pvarValue);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumerateExtensionsSetup )(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ LONG Flags);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumerateExtensions )(
ICertServerPolicy __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrExtensionName);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumerateExtensionsClose )(
ICertServerPolicy __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumerateAttributesSetup )(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ LONG Flags);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumerateAttributes )(
ICertServerPolicy __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrAttributeName);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumerateAttributesClose )(
ICertServerPolicy __RPC_FAR * This);
END_INTERFACE
} ICertServerPolicyVtbl;
interface ICertServerPolicy
{
CONST_VTBL struct ICertServerPolicyVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define ICertServerPolicy_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define ICertServerPolicy_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define ICertServerPolicy_Release(This) \
(This)->lpVtbl -> Release(This)
#define ICertServerPolicy_GetTypeInfoCount(This,pctinfo) \
(This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
#define ICertServerPolicy_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
(This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ICertServerPolicy_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
(This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ICertServerPolicy_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
(This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define ICertServerPolicy_SetContext(This,Context) \
(This)->lpVtbl -> SetContext(This,Context)
#define ICertServerPolicy_GetRequestProperty(This,strPropertyName,PropertyType,pvarPropertyValue) \
(This)->lpVtbl -> GetRequestProperty(This,strPropertyName,PropertyType,pvarPropertyValue)
#define ICertServerPolicy_GetRequestAttribute(This,strAttributeName,pstrAttributeValue) \
(This)->lpVtbl -> GetRequestAttribute(This,strAttributeName,pstrAttributeValue)
#define ICertServerPolicy_GetCertificateProperty(This,strPropertyName,PropertyType,pvarPropertyValue) \
(This)->lpVtbl -> GetCertificateProperty(This,strPropertyName,PropertyType,pvarPropertyValue)
#define ICertServerPolicy_SetCertificateProperty(This,strPropertyName,PropertyType,pvarPropertyValue) \
(This)->lpVtbl -> SetCertificateProperty(This,strPropertyName,PropertyType,pvarPropertyValue)
#define ICertServerPolicy_GetCertificateExtension(This,strExtensionName,Type,pvarValue) \
(This)->lpVtbl -> GetCertificateExtension(This,strExtensionName,Type,pvarValue)
#define ICertServerPolicy_GetCertificateExtensionFlags(This,pExtFlags) \
(This)->lpVtbl -> GetCertificateExtensionFlags(This,pExtFlags)
#define ICertServerPolicy_SetCertificateExtension(This,strExtensionName,Type,ExtFlags,pvarValue) \
(This)->lpVtbl -> SetCertificateExtension(This,strExtensionName,Type,ExtFlags,pvarValue)
#define ICertServerPolicy_EnumerateExtensionsSetup(This,Flags) \
(This)->lpVtbl -> EnumerateExtensionsSetup(This,Flags)
#define ICertServerPolicy_EnumerateExtensions(This,pstrExtensionName) \
(This)->lpVtbl -> EnumerateExtensions(This,pstrExtensionName)
#define ICertServerPolicy_EnumerateExtensionsClose(This) \
(This)->lpVtbl -> EnumerateExtensionsClose(This)
#define ICertServerPolicy_EnumerateAttributesSetup(This,Flags) \
(This)->lpVtbl -> EnumerateAttributesSetup(This,Flags)
#define ICertServerPolicy_EnumerateAttributes(This,pstrAttributeName) \
(This)->lpVtbl -> EnumerateAttributes(This,pstrAttributeName)
#define ICertServerPolicy_EnumerateAttributesClose(This) \
(This)->lpVtbl -> EnumerateAttributesClose(This)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE ICertServerPolicy_SetContext_Proxy(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ LONG Context);
void __RPC_STUB ICertServerPolicy_SetContext_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerPolicy_GetRequestProperty_Proxy(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [retval][out] */ VARIANT __RPC_FAR *pvarPropertyValue);
void __RPC_STUB ICertServerPolicy_GetRequestProperty_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerPolicy_GetRequestAttribute_Proxy(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ const BSTR strAttributeName,
/* [retval][out] */ BSTR __RPC_FAR *pstrAttributeValue);
void __RPC_STUB ICertServerPolicy_GetRequestAttribute_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerPolicy_GetCertificateProperty_Proxy(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [retval][out] */ VARIANT __RPC_FAR *pvarPropertyValue);
void __RPC_STUB ICertServerPolicy_GetCertificateProperty_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerPolicy_SetCertificateProperty_Proxy(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [in] */ const VARIANT __RPC_FAR *pvarPropertyValue);
void __RPC_STUB ICertServerPolicy_SetCertificateProperty_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerPolicy_GetCertificateExtension_Proxy(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ const BSTR strExtensionName,
/* [in] */ LONG Type,
/* [retval][out] */ VARIANT __RPC_FAR *pvarValue);
void __RPC_STUB ICertServerPolicy_GetCertificateExtension_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerPolicy_GetCertificateExtensionFlags_Proxy(
ICertServerPolicy __RPC_FAR * This,
/* [retval][out] */ LONG __RPC_FAR *pExtFlags);
void __RPC_STUB ICertServerPolicy_GetCertificateExtensionFlags_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerPolicy_SetCertificateExtension_Proxy(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ const BSTR strExtensionName,
/* [in] */ LONG Type,
/* [in] */ LONG ExtFlags,
/* [in] */ const VARIANT __RPC_FAR *pvarValue);
void __RPC_STUB ICertServerPolicy_SetCertificateExtension_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerPolicy_EnumerateExtensionsSetup_Proxy(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ LONG Flags);
void __RPC_STUB ICertServerPolicy_EnumerateExtensionsSetup_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerPolicy_EnumerateExtensions_Proxy(
ICertServerPolicy __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrExtensionName);
void __RPC_STUB ICertServerPolicy_EnumerateExtensions_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerPolicy_EnumerateExtensionsClose_Proxy(
ICertServerPolicy __RPC_FAR * This);
void __RPC_STUB ICertServerPolicy_EnumerateExtensionsClose_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerPolicy_EnumerateAttributesSetup_Proxy(
ICertServerPolicy __RPC_FAR * This,
/* [in] */ LONG Flags);
void __RPC_STUB ICertServerPolicy_EnumerateAttributesSetup_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerPolicy_EnumerateAttributes_Proxy(
ICertServerPolicy __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrAttributeName);
void __RPC_STUB ICertServerPolicy_EnumerateAttributes_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerPolicy_EnumerateAttributesClose_Proxy(
ICertServerPolicy __RPC_FAR * This);
void __RPC_STUB ICertServerPolicy_EnumerateAttributesClose_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __ICertServerPolicy_INTERFACE_DEFINED__ */
#ifndef __ICertServerExit_INTERFACE_DEFINED__
#define __ICertServerExit_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: ICertServerExit
* at Mon Aug 04 19:41:38 1997
* using MIDL 3.03.0106
****************************************/
/* [unique][helpstring][dual][uuid][object] */
EXTERN_C const IID IID_ICertServerExit;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("4ba9eb90-732c-11d0-8816-00a0c903b83c")
ICertServerExit : public IDispatch
{
public:
virtual HRESULT STDMETHODCALLTYPE SetContext(
/* [in] */ LONG Context) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRequestProperty(
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [retval][out] */ VARIANT __RPC_FAR *pvarPropertyValue) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRequestAttribute(
/* [in] */ const BSTR strAttributeName,
/* [retval][out] */ BSTR __RPC_FAR *pstrAttributeValue) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCertificateProperty(
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [retval][out] */ VARIANT __RPC_FAR *pvarPropertyValue) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCertificateExtension(
/* [in] */ const BSTR strExtensionName,
/* [in] */ LONG Type,
/* [retval][out] */ VARIANT __RPC_FAR *pvarValue) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCertificateExtensionFlags(
/* [retval][out] */ LONG __RPC_FAR *pExtFlags) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumerateExtensionsSetup(
/* [in] */ LONG Flags) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumerateExtensions(
/* [retval][out] */ BSTR __RPC_FAR *pstrExtensionName) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumerateExtensionsClose( void) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumerateAttributesSetup(
/* [in] */ LONG Flags) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumerateAttributes(
/* [retval][out] */ BSTR __RPC_FAR *pstrAttributeName) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumerateAttributesClose( void) = 0;
};
#else /* C style interface */
typedef struct ICertServerExitVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
ICertServerExit __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
ICertServerExit __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
ICertServerExit __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )(
ICertServerExit __RPC_FAR * This,
/* [out] */ UINT __RPC_FAR *pctinfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )(
ICertServerExit __RPC_FAR * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )(
ICertServerExit __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
/* [in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )(
ICertServerExit __RPC_FAR * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
/* [out] */ VARIANT __RPC_FAR *pVarResult,
/* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
/* [out] */ UINT __RPC_FAR *puArgErr);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetContext )(
ICertServerExit __RPC_FAR * This,
/* [in] */ LONG Context);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetRequestProperty )(
ICertServerExit __RPC_FAR * This,
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [retval][out] */ VARIANT __RPC_FAR *pvarPropertyValue);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetRequestAttribute )(
ICertServerExit __RPC_FAR * This,
/* [in] */ const BSTR strAttributeName,
/* [retval][out] */ BSTR __RPC_FAR *pstrAttributeValue);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCertificateProperty )(
ICertServerExit __RPC_FAR * This,
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [retval][out] */ VARIANT __RPC_FAR *pvarPropertyValue);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCertificateExtension )(
ICertServerExit __RPC_FAR * This,
/* [in] */ const BSTR strExtensionName,
/* [in] */ LONG Type,
/* [retval][out] */ VARIANT __RPC_FAR *pvarValue);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCertificateExtensionFlags )(
ICertServerExit __RPC_FAR * This,
/* [retval][out] */ LONG __RPC_FAR *pExtFlags);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumerateExtensionsSetup )(
ICertServerExit __RPC_FAR * This,
/* [in] */ LONG Flags);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumerateExtensions )(
ICertServerExit __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrExtensionName);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumerateExtensionsClose )(
ICertServerExit __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumerateAttributesSetup )(
ICertServerExit __RPC_FAR * This,
/* [in] */ LONG Flags);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumerateAttributes )(
ICertServerExit __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrAttributeName);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumerateAttributesClose )(
ICertServerExit __RPC_FAR * This);
END_INTERFACE
} ICertServerExitVtbl;
interface ICertServerExit
{
CONST_VTBL struct ICertServerExitVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define ICertServerExit_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define ICertServerExit_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define ICertServerExit_Release(This) \
(This)->lpVtbl -> Release(This)
#define ICertServerExit_GetTypeInfoCount(This,pctinfo) \
(This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
#define ICertServerExit_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
(This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ICertServerExit_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
(This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ICertServerExit_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
(This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define ICertServerExit_SetContext(This,Context) \
(This)->lpVtbl -> SetContext(This,Context)
#define ICertServerExit_GetRequestProperty(This,strPropertyName,PropertyType,pvarPropertyValue) \
(This)->lpVtbl -> GetRequestProperty(This,strPropertyName,PropertyType,pvarPropertyValue)
#define ICertServerExit_GetRequestAttribute(This,strAttributeName,pstrAttributeValue) \
(This)->lpVtbl -> GetRequestAttribute(This,strAttributeName,pstrAttributeValue)
#define ICertServerExit_GetCertificateProperty(This,strPropertyName,PropertyType,pvarPropertyValue) \
(This)->lpVtbl -> GetCertificateProperty(This,strPropertyName,PropertyType,pvarPropertyValue)
#define ICertServerExit_GetCertificateExtension(This,strExtensionName,Type,pvarValue) \
(This)->lpVtbl -> GetCertificateExtension(This,strExtensionName,Type,pvarValue)
#define ICertServerExit_GetCertificateExtensionFlags(This,pExtFlags) \
(This)->lpVtbl -> GetCertificateExtensionFlags(This,pExtFlags)
#define ICertServerExit_EnumerateExtensionsSetup(This,Flags) \
(This)->lpVtbl -> EnumerateExtensionsSetup(This,Flags)
#define ICertServerExit_EnumerateExtensions(This,pstrExtensionName) \
(This)->lpVtbl -> EnumerateExtensions(This,pstrExtensionName)
#define ICertServerExit_EnumerateExtensionsClose(This) \
(This)->lpVtbl -> EnumerateExtensionsClose(This)
#define ICertServerExit_EnumerateAttributesSetup(This,Flags) \
(This)->lpVtbl -> EnumerateAttributesSetup(This,Flags)
#define ICertServerExit_EnumerateAttributes(This,pstrAttributeName) \
(This)->lpVtbl -> EnumerateAttributes(This,pstrAttributeName)
#define ICertServerExit_EnumerateAttributesClose(This) \
(This)->lpVtbl -> EnumerateAttributesClose(This)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE ICertServerExit_SetContext_Proxy(
ICertServerExit __RPC_FAR * This,
/* [in] */ LONG Context);
void __RPC_STUB ICertServerExit_SetContext_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerExit_GetRequestProperty_Proxy(
ICertServerExit __RPC_FAR * This,
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [retval][out] */ VARIANT __RPC_FAR *pvarPropertyValue);
void __RPC_STUB ICertServerExit_GetRequestProperty_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerExit_GetRequestAttribute_Proxy(
ICertServerExit __RPC_FAR * This,
/* [in] */ const BSTR strAttributeName,
/* [retval][out] */ BSTR __RPC_FAR *pstrAttributeValue);
void __RPC_STUB ICertServerExit_GetRequestAttribute_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerExit_GetCertificateProperty_Proxy(
ICertServerExit __RPC_FAR * This,
/* [in] */ const BSTR strPropertyName,
/* [in] */ LONG PropertyType,
/* [retval][out] */ VARIANT __RPC_FAR *pvarPropertyValue);
void __RPC_STUB ICertServerExit_GetCertificateProperty_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerExit_GetCertificateExtension_Proxy(
ICertServerExit __RPC_FAR * This,
/* [in] */ const BSTR strExtensionName,
/* [in] */ LONG Type,
/* [retval][out] */ VARIANT __RPC_FAR *pvarValue);
void __RPC_STUB ICertServerExit_GetCertificateExtension_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerExit_GetCertificateExtensionFlags_Proxy(
ICertServerExit __RPC_FAR * This,
/* [retval][out] */ LONG __RPC_FAR *pExtFlags);
void __RPC_STUB ICertServerExit_GetCertificateExtensionFlags_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerExit_EnumerateExtensionsSetup_Proxy(
ICertServerExit __RPC_FAR * This,
/* [in] */ LONG Flags);
void __RPC_STUB ICertServerExit_EnumerateExtensionsSetup_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerExit_EnumerateExtensions_Proxy(
ICertServerExit __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrExtensionName);
void __RPC_STUB ICertServerExit_EnumerateExtensions_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerExit_EnumerateExtensionsClose_Proxy(
ICertServerExit __RPC_FAR * This);
void __RPC_STUB ICertServerExit_EnumerateExtensionsClose_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerExit_EnumerateAttributesSetup_Proxy(
ICertServerExit __RPC_FAR * This,
/* [in] */ LONG Flags);
void __RPC_STUB ICertServerExit_EnumerateAttributesSetup_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerExit_EnumerateAttributes_Proxy(
ICertServerExit __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrAttributeName);
void __RPC_STUB ICertServerExit_EnumerateAttributes_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertServerExit_EnumerateAttributesClose_Proxy(
ICertServerExit __RPC_FAR * This);
void __RPC_STUB ICertServerExit_EnumerateAttributesClose_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __ICertServerExit_INTERFACE_DEFINED__ */
#ifndef __CERTIFLib_LIBRARY_DEFINED__
#define __CERTIFLib_LIBRARY_DEFINED__
/****************************************
* Generated header for library: CERTIFLib
* at Mon Aug 04 19:41:38 1997
* using MIDL 3.03.0106
****************************************/
/* [helpstring][version][uuid] */
EXTERN_C const IID LIBID_CERTIFLib;
EXTERN_C const CLSID CLSID_CCertServerPolicy;
#ifdef __cplusplus
class DECLSPEC_UUID("aa000926-ffbe-11cf-8800-00a0c903b83c")
CCertServerPolicy;
#endif
EXTERN_C const CLSID CLSID_CCertServerExit;
#ifdef __cplusplus
class DECLSPEC_UUID("4c4a5e40-732c-11d0-8816-00a0c903b83c")
CCertServerExit;
#endif
#endif /* __CERTIFLib_LIBRARY_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
unsigned long __RPC_USER BSTR_UserSize( unsigned long __RPC_FAR *, unsigned long , BSTR __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER BSTR_UserMarshal( unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER BSTR_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * );
void __RPC_USER BSTR_UserFree( unsigned long __RPC_FAR *, BSTR __RPC_FAR * );
unsigned long __RPC_USER VARIANT_UserSize( unsigned long __RPC_FAR *, unsigned long , VARIANT __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER VARIANT_UserMarshal( unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER VARIANT_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, VARIANT __RPC_FAR * );
void __RPC_USER VARIANT_UserFree( unsigned long __RPC_FAR *, VARIANT __RPC_FAR * );
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif
@@ -0,0 +1,314 @@
/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 3.03.0106 */
/* at Mon Aug 04 19:41:40 1997
*/
/* Compiler settings for certpol.idl:
Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext
error checks: none
*/
//@@MIDL_FILE_HEADING( )
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __certpol_h__
#define __certpol_h__
#ifdef __cplusplus
extern "C"{
#endif
/* Forward Declarations */
#ifndef __ICertPolicy_FWD_DEFINED__
#define __ICertPolicy_FWD_DEFINED__
typedef interface ICertPolicy ICertPolicy;
#endif /* __ICertPolicy_FWD_DEFINED__ */
#ifndef __CCertPolicy_FWD_DEFINED__
#define __CCertPolicy_FWD_DEFINED__
#ifdef __cplusplus
typedef class CCertPolicy CCertPolicy;
#else
typedef struct CCertPolicy CCertPolicy;
#endif /* __cplusplus */
#endif /* __CCertPolicy_FWD_DEFINED__ */
/* header files for imported files */
#include "wtypes.h"
#include "oaidl.h"
void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * );
#ifndef __ICertPolicy_INTERFACE_DEFINED__
#define __ICertPolicy_INTERFACE_DEFINED__
/****************************************
* Generated header for interface: ICertPolicy
* at Mon Aug 04 19:41:40 1997
* using MIDL 3.03.0106
****************************************/
/* [unique][helpstring][dual][uuid][object] */
EXTERN_C const IID IID_ICertPolicy;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("38bb5a00-7636-11d0-b413-00a0c91bbf8c")
ICertPolicy : public IDispatch
{
public:
virtual HRESULT STDMETHODCALLTYPE Initialize(
/* [in] */ const BSTR strConfig) = 0;
virtual HRESULT STDMETHODCALLTYPE VerifyRequest(
/* [in] */ const BSTR strConfig,
/* [in] */ LONG Context,
/* [in] */ LONG bNewRequest,
/* [in] */ LONG Flags,
/* [retval][out] */ LONG __RPC_FAR *pDisposition) = 0;
virtual HRESULT STDMETHODCALLTYPE GetDescription(
/* [retval][out] */ BSTR __RPC_FAR *pstrDescription) = 0;
virtual HRESULT STDMETHODCALLTYPE ShutDown( void) = 0;
};
#else /* C style interface */
typedef struct ICertPolicyVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
ICertPolicy __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
ICertPolicy __RPC_FAR * This);
ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
ICertPolicy __RPC_FAR * This);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )(
ICertPolicy __RPC_FAR * This,
/* [out] */ UINT __RPC_FAR *pctinfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )(
ICertPolicy __RPC_FAR * This,
/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )(
ICertPolicy __RPC_FAR * This,
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames,
/* [in] */ UINT cNames,
/* [in] */ LCID lcid,
/* [size_is][out] */ DISPID __RPC_FAR *rgDispId);
/* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )(
ICertPolicy __RPC_FAR * This,
/* [in] */ DISPID dispIdMember,
/* [in] */ REFIID riid,
/* [in] */ LCID lcid,
/* [in] */ WORD wFlags,
/* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams,
/* [out] */ VARIANT __RPC_FAR *pVarResult,
/* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo,
/* [out] */ UINT __RPC_FAR *puArgErr);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Initialize )(
ICertPolicy __RPC_FAR * This,
/* [in] */ const BSTR strConfig);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *VerifyRequest )(
ICertPolicy __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG Context,
/* [in] */ LONG bNewRequest,
/* [in] */ LONG Flags,
/* [retval][out] */ LONG __RPC_FAR *pDisposition);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetDescription )(
ICertPolicy __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrDescription);
HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ShutDown )(
ICertPolicy __RPC_FAR * This);
END_INTERFACE
} ICertPolicyVtbl;
interface ICertPolicy
{
CONST_VTBL struct ICertPolicyVtbl __RPC_FAR *lpVtbl;
};
#ifdef COBJMACROS
#define ICertPolicy_QueryInterface(This,riid,ppvObject) \
(This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
#define ICertPolicy_AddRef(This) \
(This)->lpVtbl -> AddRef(This)
#define ICertPolicy_Release(This) \
(This)->lpVtbl -> Release(This)
#define ICertPolicy_GetTypeInfoCount(This,pctinfo) \
(This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)
#define ICertPolicy_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \
(This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ICertPolicy_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \
(This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ICertPolicy_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \
(This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#define ICertPolicy_Initialize(This,strConfig) \
(This)->lpVtbl -> Initialize(This,strConfig)
#define ICertPolicy_VerifyRequest(This,strConfig,Context,bNewRequest,Flags,pDisposition) \
(This)->lpVtbl -> VerifyRequest(This,strConfig,Context,bNewRequest,Flags,pDisposition)
#define ICertPolicy_GetDescription(This,pstrDescription) \
(This)->lpVtbl -> GetDescription(This,pstrDescription)
#define ICertPolicy_ShutDown(This) \
(This)->lpVtbl -> ShutDown(This)
#endif /* COBJMACROS */
#endif /* C style interface */
HRESULT STDMETHODCALLTYPE ICertPolicy_Initialize_Proxy(
ICertPolicy __RPC_FAR * This,
/* [in] */ const BSTR strConfig);
void __RPC_STUB ICertPolicy_Initialize_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertPolicy_VerifyRequest_Proxy(
ICertPolicy __RPC_FAR * This,
/* [in] */ const BSTR strConfig,
/* [in] */ LONG Context,
/* [in] */ LONG bNewRequest,
/* [in] */ LONG Flags,
/* [retval][out] */ LONG __RPC_FAR *pDisposition);
void __RPC_STUB ICertPolicy_VerifyRequest_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertPolicy_GetDescription_Proxy(
ICertPolicy __RPC_FAR * This,
/* [retval][out] */ BSTR __RPC_FAR *pstrDescription);
void __RPC_STUB ICertPolicy_GetDescription_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
HRESULT STDMETHODCALLTYPE ICertPolicy_ShutDown_Proxy(
ICertPolicy __RPC_FAR * This);
void __RPC_STUB ICertPolicy_ShutDown_Stub(
IRpcStubBuffer *This,
IRpcChannelBuffer *_pRpcChannelBuffer,
PRPC_MESSAGE _pRpcMessage,
DWORD *_pdwStubPhase);
#endif /* __ICertPolicy_INTERFACE_DEFINED__ */
#ifndef __CERTPOLICYLib_LIBRARY_DEFINED__
#define __CERTPOLICYLib_LIBRARY_DEFINED__
/****************************************
* Generated header for library: CERTPOLICYLib
* at Mon Aug 04 19:41:40 1997
* using MIDL 3.03.0106
****************************************/
/* [helpstring][version][uuid] */
EXTERN_C const IID LIBID_CERTPOLICYLib;
EXTERN_C const CLSID CLSID_CCertPolicy;
#ifdef __cplusplus
class DECLSPEC_UUID("3a428a00-7636-11d0-b413-00a0c91bbf8c")
CCertPolicy;
#endif
#endif /* __CERTPOLICYLib_LIBRARY_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
unsigned long __RPC_USER BSTR_UserSize( unsigned long __RPC_FAR *, unsigned long , BSTR __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER BSTR_UserMarshal( unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * );
unsigned char __RPC_FAR * __RPC_USER BSTR_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * );
void __RPC_USER BSTR_UserFree( unsigned long __RPC_FAR *, BSTR __RPC_FAR * );
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif
@@ -0,0 +1,265 @@
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992-1997.
//
// File: CertSrv.h
// Contents: Main Certificate Server header
// Also includes .h files for the COM interfaces
//
//----------------------------------------------------------------------------
#if !defined( _CERTSRV_H_ )
#define _CERTSRV_H_
#include <certadm.h>
#include <certcli.h>
#include <certenc.h>
#include <certexit.h>
#include <certif.h>
#include <certpol.h>
#ifndef DBG_CERTSRV
# if defined(_DEBUG)
# define DBG_CERTSRV 1
# elif defined(DBG)
# define DBG_CERTSRV DBG
# else
# define DBG_CERTSRV 0
# endif
#endif
#define wszCLASS_CERTADMIN TEXT("CertificateAuthority.Admin")
#define wszCLASS_CERTCONFIG TEXT("CertificateAuthority.Config")
#define wszCLASS_CERTGETCONFIG TEXT("CertificateAuthority.GetConfig")
#define wszCLASS_CERTENCODE TEXT("CertificateAuthority.Encode")
#define wszCLASS_CERTEXIT TEXT("CertificateAuthority.Exit")
#define wszCLASS_CERTPOLICY TEXT("CertificateAuthority.Policy")
#define wszCLASS_CERTREQUEST TEXT("CertificateAuthority.Request")
#define wszCLASS_CERTSERVEREXIT TEXT("CertificateAuthority.ServerExit")
#define wszCLASS_CERTSERVERPOLICY TEXT("CertificateAuthority.ServerPolicy")
#define wszSERVICE_NAME TEXT("CertSvc")
#define wszREGKEYBASE TEXT("SYSTEM\\CurrentControlSet\\Services\\") \
wszSERVICE_NAME
//======================================================================
// Full path to "CertSvc\Configuration\":
#define x_wszREGKEYCONFIGCANAME wszREGKEYBASE TEXT("\\") \
wszREGKEYCONFIG TEXT("\\")
//======================================================================
// Key Under "CertSvc":
#define wszREGKEYCONFIG TEXT("Configuration")
//======================================================================
// Values Under "CertSvc\Configuration\<CAName>":
#define wszREGCERTENROLLCOMPATIBLE TEXT("CertEnrollCompatible")
#define wszREGKEYENABLED TEXT("Enabled")
#define wszREGCONTAINERNAME TEXT("KeySetName")
#define wszREGNAMESEPARATOR TEXT("SubjectNameSeparator")
#define wszREGPOLICYFLAGS TEXT("PolicyFlags")
#define wszREGSUBJECTTEMPLATE TEXT("SubjectTemplate")
#define wszREGREVOCATIONCRLURL TEXT("RevocationCRLURL")
#define wszREGREVOCATIONTYPE TEXT("RevocationType")
#define wszREGREVOCATIONURL TEXT("RevocationURL")
#define wszREGDURATIONPERIOD TEXT("ValidityPeriod")
#define wszREGDURATIONUNITS TEXT("ValidityPeriodUnits")
#define szREGDBDSN "DBDSN"
#define szREGDBUSER "DBUser"
#define szREGDBPASSWORD "DBPassword"
#define wszREGDBDSN TEXT(szREGDBDSN)
#define wszREGDBUSER TEXT(szREGDBUSER)
#define wszREGDBPASSWORD TEXT(szREGDBPASSWORD)
//======================================================================
// Value strings for "CertSvc\Configuration\<CAName>\SubjectNameSeparator":
#define szNAMESEPARATORDEFAULT ","
#define wszNAMESEPARATORDEFAULT TEXT(szNAMESEPARATORDEFAULT)
//======================================================================
// Value strings for "CertSvc\Configuration\<CAName>\RevocationType":
#define wszREVTYPE_CRL TEXT("CRL")
#define wszREVTYPE_NETSCAPE TEXT("Netscape")
//======================================================================
// Value strings for "CertSvc\Configuration\<CAName>\ValidityPeriod":
#define wszDURATIONUNITSYEARS TEXT("Years")
#define wszDURATIONUNITSMONTHS TEXT("Months")
#define wszDURATIONUNITSWEEKS TEXT("Weeks")
#define wszDURATIONUNITSDAYS TEXT("Days")
#define wszDURATIONUNITSHOURS TEXT("Hours")
#define wszDURATIONUNITSMINUTES TEXT("Minutes")
#define wszDURATIONUNITSSECONDS TEXT("Seconds")
//+--------------------------------------------------------------------------
// Name properties:
#define wszPROPDISTINGUISHEDNAME TEXT("DistinguishedName")
#define wszPROPRAWNAME TEXT("RawName")
#define wszPROPNAMETYPE TEXT("NameType")
#define wszPROPCOUNTRY TEXT("Country")
#define wszPROPORGANIZATION TEXT("Organization")
#define wszPROPORGUNIT TEXT("OrgUnit")
#define wszPROPCOMMONNAME TEXT("CommonName")
#define wszPROPLOCALITY TEXT("Locality")
#define wszPROPSTATE TEXT("State")
#define wszPROPTITLE TEXT("Title")
#define wszPROPGIVENNAME TEXT("GivenName")
#define wszPROPINITIALS TEXT("Initials")
#define wszPROPSURNAME TEXT("SurName")
#define wszPROPDOMAINCOMPONENT TEXT("DomainComponent")
#define wszPROPEMAIL TEXT("EMail")
//+--------------------------------------------------------------------------
// Subject Name properties:
#define wszPROPSUBJECTDOT TEXT("Subject.")
#define wszPROPSUBJECTDISTINGUISHEDNAME \
wszPROPSUBJECTDOT wszPROPDISTINGUISHEDNAME
#define wszPROPSUBJECTRAWNAME wszPROPSUBJECTDOT wszPROPRAWNAME
#define wszPROPSUBJECTNAMETYPE wszPROPSUBJECTDOT wszPROPNAMETYPE
#define wszPROPSUBJECTCOUNTRY wszPROPSUBJECTDOT wszPROPCOUNTRY
#define wszPROPSUBJECTORGANIZATION wszPROPSUBJECTDOT wszPROPORGANIZATION
#define wszPROPSUBJECTORGUNIT wszPROPSUBJECTDOT wszPROPORGUNIT
#define wszPROPSUBJECTCOMMONNAME wszPROPSUBJECTDOT wszPROPCOMMONNAME
#define wszPROPSUBJECTLOCALITY wszPROPSUBJECTDOT wszPROPLOCALITY
#define wszPROPSUBJECTSTATE wszPROPSUBJECTDOT wszPROPSTATE
#define wszPROPSUBJECTTITLE wszPROPSUBJECTDOT wszPROPTITLE
#define wszPROPSUBJECTGIVENNAME wszPROPSUBJECTDOT wszPROPGIVENNAME
#define wszPROPSUBJECTINITIALS wszPROPSUBJECTDOT wszPROPINITIALS
#define wszPROPSUBJECTSURNAME wszPROPSUBJECTDOT wszPROPSURNAME
#define wszPROPSUBJECTDOMAINCOMPONENT wszPROPSUBJECTDOT wszPROPDOMAINCOMPONENT
#define wszPROPSUBJECTEMAIL wszPROPSUBJECTDOT wszPROPEMAIL
#define wszPROPSUBJECTCOUNTRYOBJID \
wszPROPSUBJECTDOT TEXT(szOID_COUNTRY_NAME)
#define wszPROPSUBJECTORGANIZATIONOBJID \
wszPROPSUBJECTDOT TEXT(szOID_ORGANIZATION_NAME)
#define wszPROPSUBJECTORGUNITOBJID \
wszPROPSUBJECTDOT TEXT(szOID_ORGANIZATIONAL_UNIT_NAME)
#define wszPROPSUBJECTCOMMONNAMEOBJID \
wszPROPSUBJECTDOT TEXT(szOID_COMMON_NAME)
#define wszPROPSUBJECTLOCALITYOBJID \
wszPROPSUBJECTDOT TEXT(szOID_LOCALITY_NAME)
#define wszPROPSUBJECTSTATEOBJID \
wszPROPSUBJECTDOT TEXT(szOID_STATE_OR_PROVINCE_NAME)
#define wszPROPSUBJECTTITLEOBJID \
wszPROPSUBJECTDOT TEXT(szOID_TITLE)
#define wszPROPSUBJECTGIVENNAMEOBJID \
wszPROPSUBJECTDOT TEXT(szOID_GIVEN_NAME)
#define wszPROPSUBJECTINITIALSOBJID \
wszPROPSUBJECTDOT TEXT(szOID_INITIALS)
#define wszPROPSUBJECTSURNAMEOBJID \
wszPROPSUBJECTDOT TEXT(szOID_SUR_NAME)
//+--------------------------------------------------------------------------
// Request properties:
#define wszPROPREQUESTREQUESTID TEXT("RequestID")
#define wszPROPREQUESTRAWREQUEST TEXT("RawRequest")
#define wszPROPREQUESTATTRIBUTES TEXT("RequestAttributes")
#define wszPROPREQUESTTYPE TEXT("RequestType")
#define wszPROPREQUESTFLAGS TEXT("RequestFlags")
#define wszPROPREQUESTSTATUS TEXT("Status")
#define wszPROPREQUESTSTATUSCODE TEXT("StatusCode")
#define wszPROPREQUESTDISPOSITION TEXT("Disposition")
#define wszPROPREQUESTDISPOSITIONMESSAGE TEXT("DispositionMessage")
#define wszPROPREQUESTSUBMITTEDWHEN TEXT("SubmittedWhen")
#define wszPROPREQUESTRESOLVEDWHEN TEXT("ResolvedWhen")
#define wszPROPREQUESTREVOKEDWHEN TEXT("RevokedWhen")
#define wszPROPREQUESTREVOKEDEFFECTIVEWHEN TEXT("RevokedEffectiveWhen")
#define wszPROPREQUESTREVOKEDREASON TEXT("RevokedReason")
#define wszPROPREQUESTERNAME TEXT("RequesterName")
//+--------------------------------------------------------------------------
// Request attribute properties:
#define wszPROPCHALLENGE TEXT("Challenge")
#define wszPROPEXPECTEDCHALLENGE TEXT("ExpectedChallenge")
//+--------------------------------------------------------------------------
// Certificate properties:
#define wszPROPCERTIFICATEREQUESTID TEXT("RequestID")
#define wszPROPRAWCERTIFICATE TEXT("RawCertificate")
#define wszPROPCERTIFICATETYPE TEXT("CertificateType")
#define wszPROPCERTIFICATESERIALNUMBER TEXT("SerialNumber")
#define wszPROPCERTIFICATENOTBEFOREDATE TEXT("NotBefore")
#define wszPROPCERTIFICATENOTAFTERDATE TEXT("NotAfter")
#define wszPROPCERTIFICATERAWPUBLICKEY TEXT("RawPublicKey")
#define wszPROPCERTIFICATEPUBLICKEYALGORITHM TEXT("PublicKeyAlgorithm")
#define wszPROPCERTIFICATERAWPUBLICKEYALGORITHMPARAMETERS \
TEXT("RawPublicKeyAlgorithmParameters")
//+--------------------------------------------------------------------------
// Certificate extension properties:
#define EXTENSION_CRITICAL_FLAG 0x00000001
#define EXTENSION_DISABLE_FLAG 0x00000002
#define EXTENSION_POLICY_MASK 0x0000ffff // Settable by admin+policy
#define EXTENSION_ORIGIN_REQUEST 0x00010000
#define EXTENSION_ORIGIN_POLICY 0x00020000
#define EXTENSION_ORIGIN_ADMIN 0x00030000
#define EXTENSION_ORIGIN_SERVER 0x00040000
#define EXTENSION_ORIGIN_MASK 0x000f0000
//+--------------------------------------------------------------------------
// GetProperty/SetProperty Flags:
//
// Choose one Type
#define PROPTYPE_LONG 0x00000001 // Signed long
#define PROPTYPE_DATE 0x00000002 // Date+Time
#define PROPTYPE_BINARY 0x00000003 // Binary data
#define PROPTYPE_STRING 0x00000004 // Unicode String
// Request Status property values:
#define REQSTATUS_ACTIVE 1
#define REQSTATUS_ACCEPTED 2
#define REQSTATUS_DENIED 3
#define REQSTATUS_PENDING 4
#define REQSTATUS_ERROR 5
// VerifyRequest() return values
#define VR_PENDING 0 // request will be accepted or denied later
#define VR_INSTANT_OK 1 // request was accepted
#define VR_INSTANT_BAD 2 // request was rejected
#ifndef szOID_CRL_DIST_POINTS
# define szOID_CRL_DIST_POINTS "2.5.29.31"
# define CERT_ALT_NAME_URL 7
# define szOID_NETSCAPE_REVOCATION_URL "2.16.840.1.113730.1.3"
#endif
#endif // _CERTSRV_H_
@@ -0,0 +1,337 @@
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992-1997.
//
// File: CertSrv.h
// Contents: Main Certificate Server header
// Also includes .h files for the COM interfaces
//
//----------------------------------------------------------------------------
#if !defined( _CERTSRV_H_ )
#define _CERTSRV_H_
#include <certadm.h>
#include <certcli.h>
#include <certenc.h>
#include <certexit.h>
#include <certif.h>
#include <certpol.h>
#ifndef DBG_CERTSRV
# if defined(_DEBUG)
# define DBG_CERTSRV 1
# elif defined(DBG)
# define DBG_CERTSRV DBG
# else
# define DBG_CERTSRV 0
# endif
#endif
#define wszSERVICE_NAME TEXT("CertSvc")
#define wszREGKEYBASE TEXT("SYSTEM\\CurrentControlSet\\Services\\") \
wszSERVICE_NAME
//======================================================================
// Full path to "CertSvc\Configuration\":
#define wszREGKEYCONFIGCANAME wszREGKEYBASE TEXT("\\") \
wszREGKEYCONFIG TEXT("\\")
//======================================================================
// Key Under "CertSvc":
#define wszREGKEYCONFIG TEXT("Configuration")
//======================================================================
// Values Under "CertSvc\Configuration":
#define wszREGKEYDIRECTORY TEXT("ConfigurationDirectory")
#define wszREGKEYDEFAULTCONFIG TEXT("DefaultConfiguration")
//======================================================================
// Values Under "CertSvc\Configuration\<CAName>":
#define wszREGCERTENROLLCOMPATIBLE TEXT("CertEnrollCompatible")
#define wszREGKEYENABLED TEXT("Enabled")
#define wszREGCONTAINERNAME TEXT("KeySetName")
#define wszREGNAMESEPARATOR TEXT("SubjectNameSeparator")
#define wszREGPOLICYFLAGS TEXT("PolicyFlags")
#define wszREGSUBJECTTEMPLATE TEXT("SubjectTemplate")
#define wszREGSUBJECTALTNAME TEXT("SubjectAltName")
#define wszREGSUBJECTALTNAME2 TEXT("SubjectAltName2")
#define wszREGREVOCATIONCRLURL TEXT("RevocationCRLURL")
#define wszREGREVOCATIONTYPE TEXT("RevocationType")
#define wszREGREVOCATIONURL TEXT("RevocationURL")
#define wszREGNETSCAPECERTTYPE TEXT("NetscapeCertType")
#define wszREGDURATIONPERIOD TEXT("ValidityPeriod")
#define wszREGDURATIONUNITS TEXT("ValidityPeriodUnits")
#define szREGDBDSN "DBDSN"
#define szREGDBUSER "DBUser"
#define szREGDBPASSWORD "DBPassword"
#define wszREGDBDSN TEXT(szREGDBDSN)
#define wszREGDBUSER TEXT(szREGDBUSER)
#define wszREGDBPASSWORD TEXT(szREGDBPASSWORD)
//======================================================================
// Keys Under "CertSvc\Configuration\<CAName>":
#define wszREGKEYNAMES TEXT("Names")
#define wszREGCSP TEXT("CSP")
//======================================================================
// Values Under "CertSvc\Configuration\<CAName>\Names":
#define wszREGNAMEDEFAULT TEXT("*")
//======================================================================
// Values Under "CertSvc\Configuration\<CAName>\CSP":
#define wszREGPROVIDERTYPE TEXT("ProviderType");
#define wszREGPROVIDER TEXT("Provider");
#define wszHASHALGORITHM TEXT("HashAlgorithm");
#define wszMACHINEKEYSET TEXT("MachineKeyset");
//======================================================================
// Value strings for "CertSvc\Configuration\<CAName>\SubjectNameSeparator":
#define szNAMESEPARATORDEFAULT ","
#define wszNAMESEPARATORDEFAULT TEXT(szNAMESEPARATORDEFAULT)
//======================================================================
// Value strings for "CertSvc\Configuration\<CAName>\RevocationType":
#define wszREVTYPE_CRL TEXT("CRL")
#define wszREVTYPE_NETSCAPE TEXT("Netscape")
//======================================================================
// Value strings for "CertSvc\Configuration\<CAName>\ValidityPeriod":
#define wszDURATIONUNITSYEARS TEXT("Years")
#define wszDURATIONUNITSMONTHS TEXT("Months")
#define wszDURATIONUNITSWEEKS TEXT("Weeks")
#define wszDURATIONUNITSDAYS TEXT("Days")
#define wszDURATIONUNITSHOURS TEXT("Hours")
#define wszDURATIONUNITSMINUTES TEXT("Minutes")
#define wszDURATIONUNITSSECONDS TEXT("Seconds")
//======================================================================
// Value strings for "CertSvc\Configuration\<CAName>\HierFileName":
#define wszRegHierFileName TEXT("HierFileName")
#define wszCLASS_CERTADMIN TEXT("CertificateAuthority.Admin")
#define wszCLASS_CERTCONFIG TEXT("CertificateAuthority.Config")
#define wszCLASS_CERTGETCONFIG TEXT("CertificateAuthority.GetConfig")
#define wszCLASS_CERTENCODE TEXT("CertificateAuthority.Encode")
#define wszCLASS_CERTEXIT TEXT("CertificateAuthority.Exit")
#define wszCLASS_CERTPOLICY TEXT("CertificateAuthority.Policy")
#define wszCLASS_CERTREQUEST TEXT("CertificateAuthority.Request")
#define wszCLASS_CERTSERVEREXIT TEXT("CertificateAuthority.ServerExit")
#define wszCLASS_CERTSERVERPOLICY TEXT("CertificateAuthority.ServerPolicy")
//+--------------------------------------------------------------------------
// Name properties:
#define wszPROPDISTINGUISHEDNAME TEXT("DistinguishedName")
#define wszPROPRAWNAME TEXT("RawName")
#define wszPROPNAMETYPE TEXT("NameType")
#define wszPROPCOUNTRY TEXT("Country")
#define wszPROPORGANIZATION TEXT("Organization")
#define wszPROPORGUNIT TEXT("OrgUnit")
#define wszPROPCOMMONNAME TEXT("CommonName")
#define wszPROPLOCALITY TEXT("Locality")
#define wszPROPSTATE TEXT("State")
#define wszPROPTITLE TEXT("Title")
#define wszPROPGIVENNAME TEXT("GivenName")
#define wszPROPINITIALS TEXT("Initials")
#define wszPROPSURNAME TEXT("SurName")
#define wszPROPDOMAINCOMPONENT TEXT("DomainComponent")
#define wszPROPEMAIL TEXT("EMail")
//+--------------------------------------------------------------------------
// Subject Name properties:
#define wszPROPSUBJECTDOT TEXT("Subject.")
#define wszPROPSUBJECTDISTINGUISHEDNAME \
wszPROPSUBJECTDOT wszPROPDISTINGUISHEDNAME
#define wszPROPSUBJECTRAWNAME wszPROPSUBJECTDOT wszPROPRAWNAME
#define wszPROPSUBJECTNAMETYPE wszPROPSUBJECTDOT wszPROPNAMETYPE
#define wszPROPSUBJECTCOUNTRY wszPROPSUBJECTDOT wszPROPCOUNTRY
#define wszPROPSUBJECTORGANIZATION wszPROPSUBJECTDOT wszPROPORGANIZATION
#define wszPROPSUBJECTORGUNIT wszPROPSUBJECTDOT wszPROPORGUNIT
#define wszPROPSUBJECTCOMMONNAME wszPROPSUBJECTDOT wszPROPCOMMONNAME
#define wszPROPSUBJECTLOCALITY wszPROPSUBJECTDOT wszPROPLOCALITY
#define wszPROPSUBJECTSTATE wszPROPSUBJECTDOT wszPROPSTATE
#define wszPROPSUBJECTTITLE wszPROPSUBJECTDOT wszPROPTITLE
#define wszPROPSUBJECTGIVENNAME wszPROPSUBJECTDOT wszPROPGIVENNAME
#define wszPROPSUBJECTINITIALS wszPROPSUBJECTDOT wszPROPINITIALS
#define wszPROPSUBJECTSURNAME wszPROPSUBJECTDOT wszPROPSURNAME
#define wszPROPSUBJECTDOMAINCOMPONENT wszPROPSUBJECTDOT wszPROPDOMAINCOMPONENT
#define wszPROPSUBJECTEMAIL wszPROPSUBJECTDOT wszPROPEMAIL
#define wszPROPSUBJECTCOUNTRYOBJID \
wszPROPSUBJECTDOT TEXT(szOID_COUNTRY_NAME)
#define wszPROPSUBJECTORGANIZATIONOBJID \
wszPROPSUBJECTDOT TEXT(szOID_ORGANIZATION_NAME)
#define wszPROPSUBJECTORGUNITOBJID \
wszPROPSUBJECTDOT TEXT(szOID_ORGANIZATIONAL_UNIT_NAME)
#define wszPROPSUBJECTCOMMONNAMEOBJID \
wszPROPSUBJECTDOT TEXT(szOID_COMMON_NAME)
#define wszPROPSUBJECTLOCALITYOBJID \
wszPROPSUBJECTDOT TEXT(szOID_LOCALITY_NAME)
#define wszPROPSUBJECTSTATEOBJID \
wszPROPSUBJECTDOT TEXT(szOID_STATE_OR_PROVINCE_NAME)
#define wszPROPSUBJECTTITLEOBJID \
wszPROPSUBJECTDOT TEXT(szOID_TITLE)
#define wszPROPSUBJECTGIVENNAMEOBJID \
wszPROPSUBJECTDOT TEXT(szOID_GIVEN_NAME)
#define wszPROPSUBJECTINITIALSOBJID \
wszPROPSUBJECTDOT TEXT(szOID_INITIALS)
#define wszPROPSUBJECTSURNAMEOBJID \
wszPROPSUBJECTDOT TEXT(szOID_SUR_NAME)
//+--------------------------------------------------------------------------
// For mapping request attribute names to internal property names:
// Map to wszPROPSUBJECTCOMMONNAME:
#define wszATTRCOMMONNAME1 TEXT("CN")
#define wszATTRCOMMONNAME2 TEXT("CommonName")
// Map to wszPROPSUBJECTLOCALITY:
#define wszATTRLOCALITY1 TEXT("L")
#define wszATTRLOCALITY2 TEXT("Locality")
// Map to wszPROPSUBJECTSTATE:
#define wszATTRSTATE1 TEXT("S")
#define wszATTRSTATE2 TEXT("State")
// Map to wszPROPSUBJECTCOUNTRY:
#define wszATTRCOUNTRY1 TEXT("C")
#define wszATTRCOUNTRY2 TEXT("Country")
// Map to wszPROPSUBJECTORGANIZATION:
#define wszATTRORG1 TEXT("O")
#define wszATTRORG2 TEXT("Org")
#define wszATTRORG3 TEXT("Organization")
// Map to wszPROPSUBJECTORGUNIT:
#define wszATTRORGUNIT1 TEXT("OU")
#define wszATTRORGUNIT2 TEXT("OrgUnit")
#define wszATTRORGUNIT3 TEXT("OrganizationUnit")
#define wszATTRORGUNIT4 TEXT("OrganizationalUnit")
// Map to wszPROPSUBJECTDOMAINCOMPONENT:
#define wszATTRDOMAINCOMPONENT1 TEXT("DC")
#define wszATTRDOMAINCOMPONENT2 TEXT("DomainComponent")
// Map to wszPROPSUBJECTEMAIL:
#define wszATTREMAIL1 TEXT("E")
#define wszATTREMAIL2 TEXT("EMail")
//+--------------------------------------------------------------------------
// Request properties:
#define wszPROPREQUESTREQUESTID TEXT("RequestID")
#define wszPROPREQUESTRAWREQUEST TEXT("RawRequest")
#define wszPROPREQUESTATTRIBUTES TEXT("RequestAttributes")
#define wszPROPREQUESTTYPE TEXT("RequestType")
#define wszPROPREQUESTFLAGS TEXT("RequestFlags")
#define wszPROPREQUESTSTATUS TEXT("Status")
#define wszPROPREQUESTSTATUSCODE TEXT("StatusCode")
#define wszPROPREQUESTDISPOSITION TEXT("Disposition")
#define wszPROPREQUESTDISPOSITIONMESSAGE TEXT("DispositionMessage")
#define wszPROPREQUESTSUBMITTEDWHEN TEXT("SubmittedWhen")
#define wszPROPREQUESTRESOLVEDWHEN TEXT("ResolvedWhen")
#define wszPROPREQUESTREVOKEDWHEN TEXT("RevokedWhen")
#define wszPROPREQUESTREVOKEDEFFECTIVEWHEN TEXT("RevokedEffectiveWhen")
#define wszPROPREQUESTREVOKEDREASON TEXT("RevokedReason")
#define wszPROPREQUESTERNAME TEXT("RequesterName")
//+--------------------------------------------------------------------------
// Request attribute properties:
#define wszPROPCHALLENGE TEXT("Challenge")
#define wszPROPEXPECTEDCHALLENGE TEXT("ExpectedChallenge")
//+--------------------------------------------------------------------------
// Certificate properties:
#define wszPROPCERTIFICATEREQUESTID TEXT("RequestID")
#define wszPROPRAWCERTIFICATE TEXT("RawCertificate")
#define wszPROPCERTIFICATETYPE TEXT("CertificateType")
#define wszPROPCERTIFICATESERIALNUMBER TEXT("SerialNumber")
#define wszPROPCERTIFICATENOTBEFOREDATE TEXT("NotBefore")
#define wszPROPCERTIFICATENOTAFTERDATE TEXT("NotAfter")
#define wszPROPCERTIFICATERAWPUBLICKEY TEXT("RawPublicKey")
#define wszPROPCERTIFICATEPUBLICKEYALGORITHM TEXT("PublicKeyAlgorithm")
#define wszPROPCERTIFICATERAWPUBLICKEYALGORITHMPARAMETERS \
TEXT("RawPublicKeyAlgorithmParameters")
//+--------------------------------------------------------------------------
// Certificate extension properties:
#define EXTENSION_CRITICAL_FLAG 0x00000001
#define EXTENSION_DISABLE_FLAG 0x00000002
#define EXTENSION_POLICY_MASK 0x0000ffff // Settable by admin+policy
#define EXTENSION_ORIGIN_REQUEST 0x00010000
#define EXTENSION_ORIGIN_POLICY 0x00020000
#define EXTENSION_ORIGIN_ADMIN 0x00030000
#define EXTENSION_ORIGIN_SERVER 0x00040000
#define EXTENSION_ORIGIN_MASK 0x000f0000
//+--------------------------------------------------------------------------
// GetProperty/SetProperty Flags:
//
// Choose one Type
#define PROPTYPE_LONG 0x00000001 // Signed long
#define PROPTYPE_DATE 0x00000002 // Date+Time
#define PROPTYPE_BINARY 0x00000003 // Binary data
#define PROPTYPE_STRING 0x00000004 // Unicode String
// Request Status property values:
#define REQSTATUS_ACTIVE 1
#define REQSTATUS_ACCEPTED 2
#define REQSTATUS_DENIED 3
#define REQSTATUS_PENDING 4
#define REQSTATUS_ERROR 5
// VerifyRequest() return values
#define VR_PENDING 0 // request will be accepted or denied later
#define VR_INSTANT_OK 1 // request was accepted
#define VR_INSTANT_BAD 2 // request was rejected
#ifndef szOID_CRL_DIST_POINTS
# define szOID_CRL_DIST_POINTS "2.5.29.31"
# define CERT_ALT_NAME_URL 7
# define szOID_NETSCAPE_REVOCATION_URL "2.16.840.1.113730.1.3"
#endif
#endif // _CERTSRV_H_

Some files were not shown because too many files have changed in this diff Show More