mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
2.3 KiB
139 lines
2.3 KiB
/*++
|
|
|
|
Copyright (C) Microsoft Corporation, 1991 - 1999
|
|
|
|
Module Name:
|
|
|
|
rpcuuid.hxx
|
|
|
|
Abstract:
|
|
|
|
We provide a class which is wrapped around UUIDs in this file.
|
|
This class will be used internally by the runtime to deal with
|
|
UUIDs.
|
|
|
|
Author:
|
|
|
|
Michael Montague (mikemon) 15-Nov-1991
|
|
|
|
Revision History:
|
|
|
|
Danny Glasser (dannygl) 03-Mar-1992
|
|
Created worker functions for IsNullUuid, CopyUuid, and
|
|
ConvertToString. This is necessary for medium-model
|
|
(i.e. Win16) support, because the Glock C++ translator
|
|
doesn't support far "this" pointers.
|
|
|
|
Danny Glasser (dannygl) 07-Mar-1992
|
|
Same as above for ConvertFromString.
|
|
|
|
Michael Montague (mikemon) 30-Nov-1992
|
|
Remove the I_ routines.
|
|
|
|
--*/
|
|
|
|
#ifndef __RPCUUID_HXX__
|
|
#define __RPCUUID_HXX__
|
|
|
|
RPC_STATUS GenerateRandomNumber(unsigned char *Buffer, int BufferSize);
|
|
|
|
|
|
class RPC_UUID : public UUID
|
|
/*++
|
|
|
|
Class Description:
|
|
|
|
This class is simply a wrapper around the UUID data structure.
|
|
Doing this isolates the rest of the program from the internal
|
|
representation of UUIDs.
|
|
|
|
Fields:
|
|
|
|
Uuid - Contains the UUID which this class is a wrapper around.
|
|
|
|
--*/
|
|
{
|
|
public:
|
|
|
|
int
|
|
ConvertFromString (
|
|
IN RPC_CHAR PAPI * String
|
|
);
|
|
|
|
void
|
|
SetToNullUuid (
|
|
);
|
|
|
|
unsigned short HashUuid(
|
|
);
|
|
|
|
RPC_CHAR PAPI *
|
|
ConvertToString (
|
|
OUT RPC_CHAR PAPI * String
|
|
);
|
|
|
|
int
|
|
IsNullUuid (
|
|
);
|
|
|
|
void
|
|
CopyUuid (
|
|
IN RPC_UUID PAPI * FromUuid
|
|
);
|
|
|
|
int
|
|
MatchUuid (
|
|
IN RPC_UUID PAPI * RpcUuid
|
|
);
|
|
};
|
|
|
|
inline int
|
|
RPC_UUID::MatchUuid (
|
|
IN RPC_UUID PAPI * RpcUuid
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
This method compares the supplies UUID against this UUID.
|
|
|
|
Arguments:
|
|
|
|
RpcUuid - Supplies the UUID to compare with this UUID.
|
|
|
|
Return Value:
|
|
|
|
Zero will be returned if the supplied UUID is the same as this
|
|
UUID; otherwise, non-zero will be returned.
|
|
|
|
--*/
|
|
{
|
|
return(RpcpMemoryCompare(this, RpcUuid, sizeof(RPC_UUID)));
|
|
}
|
|
|
|
inline void
|
|
RPC_UUID::CopyUuid (
|
|
IN RPC_UUID PAPI * FromUuid
|
|
)
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
The supplied uuid will be copied into this uuid.
|
|
|
|
Arguments:
|
|
|
|
FromUuid - Supplies the uuid to copy from.
|
|
|
|
--*/
|
|
{
|
|
*this = *FromUuid;
|
|
}
|
|
|
|
extern "C" void
|
|
ByteSwapUuid(
|
|
RPC_UUID PAPI *pRpcUuid
|
|
);
|
|
|
|
|
|
#endif // __RPCUUID_HXX__
|