Actually, while you're feeling generous... ;)
It'd be good to get some feedback as I go so I can cleanup as I go... Actually this will probably get canned for something using the last example you sent, but still.... any glaring mistakes? The reason I used a "for (i =0;.... " loop is because it refused to work using "for(myObj in myCol)" - I have no idea why....
//---Begins here---
var myScnroot = ActiveProject.ActiveScene.Root;
var myAnotnName = "PluginData";
var myRealPlug;
var myString = "";
if(!ifDataExist(myAnotnName))
{
var myAnotn = AddProp( "Annotation", myScnroot, siDefaultPropagation, myAnotnName );
}
var myPlugCol = Application.Plugins;
var myCountCol = new ActiveXObject("XSI.Collection");
for (i = 0; i <
myPlugCol.count; i++)
{
var myPlug = myPlugCol.Item(i);
if (myPlug.loaded)
{
var myOrig = myPlug.origin;
if (myOrig == 1 || myOrig == 2 || myOrig == 5 || myOrig == 6)
{
myCountCol.Add(myPlug);
}
}
}
for (i = 0; i < myCountCol.count; i++)
{
var myRealPlug = myCountCol.item(i);
myString = myString+myRealPlug+"\r\n"
}
//Workgroups
var myWrkgrps = new VBArray( Application.Workgroups );
var cntWrkgrps = myWrkgrps.ubound( 1 ) + 1
myString = myString + "\r\nXSI was connected to these workgroups at save time:";
for (i = 0; i < cntWrkgrps; i++)
{
myString = myString + "\r\n*"+myWrkgrps.getItem(i)+"\r\n";
}
logmessage ("\r\n"+myString);
SetValue(myAnotnName+".text", myString, null);
//----------------------FUNCTIONS--------------------------------
function ifDataExist()
{
myScnroot = ActiveProject.ActiveScene.Root;
result = 0;
oEnum = new Enumerator(
myScnroot.properties ) ;
for (;!oEnum.atEnd();oEnum.moveNext() )
{
var oProp = oEnum.item() ;
if(oProp.Name == myAnotnName )
{
LogMessage("\r\n-------------------------------------------")
LogMessage("Annotation exists - Re-using...\r\n-------------------------------------------")
result = 1;
}
}
return result
}