On 03/04/2013 at 13:31, xxxxxxxx wrote:
Here is a simple plugin example that writes some text to a .txt file:
//This is an example plugin that writes text to a file
#include "c4d.h"
#include "c4d_symbols.h"
#define PLUGIN_ID 10000010
class SimplePlugin : public CommandData
{
public:
SimplePlugin(); //The Constructor
virtual Bool Execute(BaseDocument *doc);
};
SimplePlugin::SimplePlugin() // The Constructor
{
//not used in this example
}
Bool WriteMyString(const String &line, BaseFile* file)
{
if(!file) return FALSE;
CHAR *charline = NULL;
LONG strlength = line.GetCStringLen(STRINGENCODING_7BITHEX);
charline = GeAllocType(CHAR, strlength+1);
if(!charline) return FALSE;
strlength = line.GetCString(charline, strlength+1, STRINGENCODING_7BITHEX);
LONG i;
for(i=0; i<strlength; i++)
{
if(!file->WriteChar(charline[i])) return FALSE;
}
GeFree(charline);
return TRUE;
}
Bool SimplePlugin::Execute(BaseDocument *doc)
{
AutoAlloc<BaseFile> bf; //Declare the BaseFile
String text = "Hello World";
//Set the Filename
Filename fn;
Filename dir = Filename("C:\\Users\\user\\Desktop\\");
fn.SetDirectory(dir);
String suffix = "txt";
fn.SetFile(String("My Text"));
fn.SetSuffix(suffix);
fn.FileSelect(FILESELECTTYPE_ANYTHING, FILESELECT_SAVE, "Save Your Work"); //Opens the file browser
bf->Open(fn, FILEOPEN_WRITE);
WriteMyString(text, bf);
return true;
}
Bool RegisterSimplePlugin()
{
return RegisterCommandPlugin(PLUGIN_ID, GeLoadString(IDS_My_Simple_Plugin), 0, AutoBitmap("icon.tif"), String("Help text Goes here"), gNew SimplePlugin);
}
-ScottA