Initial release
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Project : SDK Core
|
||||
//
|
||||
// Category : SDK Core Interfaces
|
||||
// Filename : pluginterfaces/base/istringresult.h
|
||||
// Created by : Steinberg, 01/2005
|
||||
// Description : Strings Interface
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
// This file is part of a Steinberg SDK. It is subject to the license terms
|
||||
// in the LICENSE file found in the top-level directory of this distribution
|
||||
// and at www.steinberg.net/sdklicenses.
|
||||
// No part of the SDK, including this file, may be copied, modified, propagated,
|
||||
// or distributed except according to the terms contained in the LICENSE file.
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "pluginterfaces/base/funknown.h"
|
||||
|
||||
namespace Steinberg {
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/** Interface to return an ascii string of variable size.
|
||||
In order to manage memory allocation and deallocation properly,
|
||||
this interface is used to transfer a string as result parameter of
|
||||
a method requires a string of unknown size.
|
||||
- [host imp] or [plug imp]
|
||||
- [released: SX 4]
|
||||
*/
|
||||
class IStringResult : public FUnknown
|
||||
{
|
||||
public:
|
||||
//------------------------------------------------------------------------
|
||||
virtual void PLUGIN_API setText (const char8* text) = 0;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
static const FUID iid;
|
||||
};
|
||||
|
||||
DECLARE_CLASS_IID (IStringResult, 0x550798BC, 0x872049DB, 0x84920A15, 0x3B50B7A8)
|
||||
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
/** Interface to a string of variable size and encoding.
|
||||
- [host imp] or [plug imp]
|
||||
- [released: ]
|
||||
*/
|
||||
class IString : public FUnknown
|
||||
{
|
||||
public:
|
||||
//------------------------------------------------------------------------
|
||||
/** Assign ASCII string */
|
||||
virtual void PLUGIN_API setText8 (const char8* text) = 0;
|
||||
/** Assign unicode string */
|
||||
virtual void PLUGIN_API setText16 (const char16* text) = 0;
|
||||
|
||||
/** Return ASCII string. If the string is unicode so far, it will be converted.
|
||||
So you need to be careful, because the conversion can result in data loss.
|
||||
It is save though to call getText8 if isWideString() returns false */
|
||||
virtual const char8* PLUGIN_API getText8 () = 0;
|
||||
/** Return unicode string. If the string is ASCII so far, it will be converted. */
|
||||
virtual const char16* PLUGIN_API getText16 () = 0;
|
||||
|
||||
/** !Do not use this method! Early implementations take the given pointer as
|
||||
internal string and this will cause problems because 'free' will be used to delete the passed memory.
|
||||
Later implementations will redirect 'take' to setText8 and setText16 */
|
||||
virtual void PLUGIN_API take (void* s, bool isWide) = 0;
|
||||
|
||||
/** Returns true if the string is in unicode format, returns false if the string is ASCII */
|
||||
virtual bool PLUGIN_API isWideString () const = 0;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
static const FUID iid;
|
||||
};
|
||||
|
||||
DECLARE_CLASS_IID (IString, 0xF99DB7A3, 0x0FC14821, 0x800B0CF9, 0x8E348EDF)
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
} // namespace Steinberg
|
||||
Reference in New Issue
Block a user