Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

93 lines
1.6 KiB

// Copyright (C) 2001 Microsoft Corporation
//
// Rich Edit streaming helper
//
// 28 Sep 2001 sburns
#ifndef RICHEDITSTREAMER_HPP_INCLUDED
#define RICHEDITSTREAMER_HPP_INCLUDED
// Facilities streaming text into/out of a riched edit control. This is a
// abstract base class. Derived classes need to provide an implementation of
// the StreamCallback method. See class RichEditStringStreamer for an
// example.
class RichEditStreamer
{
public:
// Returns the error state last returned by StreamCallback.
virtual
HRESULT
ErrorResult();
// Streams text into the rich edit control.
int
StreamIn(DWORD formatOptions = SF_RTF);
// int
// StreamOut(DWORD formatOptions = SF_RTF);
protected:
RichEditStreamer(HWND richEdit_);
virtual
~RichEditStreamer();
virtual
HRESULT
StreamCallback(
PBYTE buffer,
LONG bytesToTransfer,
LONG* bytesTransferred) = 0;
HWND richEdit;
EDITSTREAM editStream;
LONG bytesCopiedSoFar;
enum StreamDirection
{
TO_CONTROL, // stream in
FROM_CONTROL // stream out
};
StreamDirection direction;
private:
HRESULT
StreamCallbackHelper(
PBYTE buffer,
LONG bytesToTransfer,
LONG* bytesTransferred);
static
DWORD CALLBACK
StaticStreamCallback(
DWORD_PTR cookie,
PBYTE buffer,
LONG bytesToTransfer,
LONG* bytesTransferred);
};
#endif // RICHEDITSTREAMER_HPP_INCLUDED