//--------------------------------------------------------------------------
//
//  EiffelCOM
//  Copyright (C) Interactive Software Engineering, 1999.
//
//  File: string_manipulator.idl
//
//  Contents: StringManipulator component definition. Used for the EiffelCOM
//		wizard tutorial.
//
//
//--------------------------------------------------------------------------

import "oaidl.idl";

[
	object, uuid(9A483B80-AA39-11d2-B961-00403392AC95),
	helpstring ("String manipulation interface"),
	version(1.0)
]
interface IString : IUnknown {
	
	[helpstring ("Manipulated string")]
	HRESULT String ([out, retval] LPSTR *a_string);

	[helpstring ("Set manipulated string with `a_string'.")]
	HRESULT SetString ([in] LPSTR a_string);
	
	[helpstring ("Copy the characters of `s' to positions `start_pos' .. `end_pos'.")]
	HRESULT ReplaceSubstring ([in] LPSTR s, [in] int start_pos, [in] int end_pos);

	[helpstring ("Remove all occurrences of `c'.")]
	HRESULT PruneAll ([in] CHAR c);
};
	
[
	uuid(6C39F541-F349-11d2-B965-00403392AC95),
	helpstring ("String Manipulator Library"),
	version (1.0)
]

library StringManipulatorLib
{
	importlib ("stdole32.tlb");
	
	[
		uuid(2DB86EC0-9672-11D2-B961-00403392AC95),
		helpstring ("String Manipulator")
	]	
	coclass StringManipulator
	{
		[default] interface IString;
	};
}
