WindowsXP-SP1/admin/snapin/corecopy/mmcutil.h
2020-09-30 16:53:49 +02:00

64 lines
1.4 KiB
C

//____________________________________________________________________________
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996 - 1997.
//
// File: MMCUtil.h
//
// Contents:
//
// Classes:
//
// Functions: WriteToStream
// ReadFromStream
// ListView_GetItemData
//
// History: 12/4/1996 RaviR Created
//____________________________________________________________________________
//
#ifndef _MMCUTIL_H_
#define _MMCUTIL_H_
#define MMC_CLSCTX_INPROC (CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER)
inline void WriteToStream(IStream& stream, void const* pv, ULONG cbToWrite)
{
ULONG bytesWritten;
HRESULT hr = stream.Write(pv, cbToWrite, &bytesWritten);
ANT(SUCCEEDED(hr) && bytesWritten == cbToWrite,
COMEX(hr, UnableToWriteToStream));
}
inline void ReadFromStream(IStream& stream, void* pv, ULONG cbToRead)
{
unsigned long bytesRead;
HRESULT hr = stream.Read(pv, cbToRead, &bytesRead);
ANT(SUCCEEDED(hr) && bytesRead == cbToRead, COMEX(hr, UnableToLoad));
}
inline ListView_GetItemData(HWND hwnd, int iItem)
{
LV_ITEM lvi;
ZeroMemory(&lvi, sizeof(lvi));
if (iItem >= 0)
{
lvi.iItem = iItem;
lvi.mask = LVIF_PARAM;
VERIFY(::SendMessage(hwnd, LVM_GETITEM, 0, (LPARAM)&lvi) == TRUE);
}
return lvi.lParam;
}
#endif // _MMCUTIL_H_