//+------------------------------------------------------------------------- // // Microsoft Windows // Copyright (C) Microsoft Corporation, 1998. // // File: // buffer.idl // // Contents: // Provides a virtual buffer for serialization operations // Intent is to have IStream support this interface if it // can provide buffer operations // // History: // VinayKr 01-16-98 Created // //-------------------------------------------------------------------------- #ifndef DO_NO_IMPORTS import "iface.idl"; import "wtypes.idl"; import "objidl.idl"; import "obase.idl"; #endif [object, local, uuid(000001B4-0000-0000-C000-000000000046), pointer_default(unique) ] interface IBuffer:IUnknown { HRESULT GetOrCreateBuffer([in] DWORD dwRequestedSize, [out] DWORD *dwActualSize, [out, size_is(,*dwActualSize)] BYTE **ppBuff); HRESULT GetBuffer([out] DWORD *pdwLength, [out, size_is(,*pdwLength)] BYTE **ppBuff); HRESULT GetLength([out] DWORD *pdwLength); HRESULT GetCopy([in] BYTE *pBuff); HRESULT SetPosition([in] DWORD dwLenFromEnd, [in] DWORD dwPosFromStart); HRESULT SetBuffer([in] DWORD dwLength, [in, size_is(dwLength)] BYTE *pBuff); HRESULT SetCopyAlignment([in] DWORD dwCopyAlignment); }