windows-nt/Source/XPSP1/NT/ds/security/cryptoapi/ui/wizards/dragdrop.h
2020-09-26 16:20:57 +08:00

69 lines
2.3 KiB
C

//--------------------------------------------------------------
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: dragdrop.h
//
// Contents: The header for dragdrop.c
//
// History: Feb-26-98 xiaohs created
//
//--------------------------------------------------------------
#ifndef DRAGDROP_H
#define DRAGDROP_H
#ifdef __cplusplus
extern "C" {
#endif
//==============================================================================
// The following are used by Drag-Drop functionalities
//==============================================================================
#undef IToClass
// macro to get from interface pointer to class pointer
#define _IOffset(class, itf) ((UINT)(ULONG_PTR)&(((class *)0)->itf))
#define IToClass(class, itf, pitf) ((class *)(((LPBYTE)pitf)-_IOffset(class, itf)))
#define ARRAYSIZE(a) (sizeof(a)/sizeof(a[0]))
HRESULT CDataObj_CreateInstance(DWORD dwCount,
LPWSTR *prgwszFileName,
BYTE **prgBlob,
DWORD *prgdwSize,
IDataObject **ppdtobj);
HRESULT CDropSource_CreateInstance(IDropSource **ppdsrc);
HRESULT CertMgrUIStartDragDrop(LPNMLISTVIEW pvmn,
HWND hwndControl,
DWORD dwExportFormat,
BOOL fExportChain);
BOOL GetFileNameAndContent(LPNMLISTVIEW pvmn,
HWND hwndControl,
DWORD dwExportFormat,
BOOL fExportChain,
DWORD *pdwCount,
LPWSTR **pprgszFileName,
BYTE ***pprgBlob,
DWORD **pprgdwSize);
BOOL FreeFileNameAndContent( DWORD dwCount,
LPWSTR *prgwszFileName,
BYTE **prgBlob,
DWORD *prgdwSize);
#ifdef __cplusplus
} // Balance extern "C" above
#endif
#endif //DRAGDROP_H