140 lines
2.3 KiB
C++
140 lines
2.3 KiB
C++
/*++
|
||
|
||
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__
|