IPersistFileCheckSum.CalculateCheckSum(Guid, UInt32, Byte[], UInt32) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用指定的算法计算关联文本缓冲区的文件表示形式的检查总和。
public:
int CalculateCheckSum(Guid % guidCheckSumAlgorithm, System::UInt32 cbBufferSize, cli::array <System::Byte> ^ pbHash, [Runtime::InteropServices::Out] System::UInt32 % pcbActualSize);
public int CalculateCheckSum (ref Guid guidCheckSumAlgorithm, uint cbBufferSize, byte[] pbHash, out uint pcbActualSize);
abstract member CalculateCheckSum : Guid * uint32 * byte[] * uint32 -> int
Public Function CalculateCheckSum (ByRef guidCheckSumAlgorithm As Guid, cbBufferSize As UInteger, pbHash As Byte(), ByRef pcbActualSize As UInteger) As Integer
参数
- guidCheckSumAlgorithm
- Guid
中表示要使用的算法的 GUID
- cbBufferSize
- UInt32
中传入的缓冲区大小
- pbHash
- Byte[]
弄校验和写入到的缓冲区
- pcbActualSize
- UInt32
弄需要缓冲区大小
返回
如果该方法成功,则它会返回 S_OK。 如果该方法失败,则会返回错误代码。
注解
COM 签名
从 textmgr2:
HRESULT IPersistFileCheckSum::CalculateCheckSum(
[in] REFGUID guidCheckSumAlgorithm,
[in] DWORD cbBufferSize,
[out, size_is(cbBufferSize)] BYTE *pbHash,
[out] DWORD *pcbActualSize
);
如果传入的缓冲区大小 cbBufferSize 为非零,则此函数返回 E_INVALIDARG 。 但如果传入的缓冲区大小为零,则它将返回 success。 在这两种情况下,所需的缓冲区大小都通过返回 pcbActualSize 。 对于 MD5 算法,所需的最大缓冲区大小为16字节。 对于 SHA1 算法,所需的最大缓冲区大小为20个字节