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
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
|