We are hoping to find time to revise the documentation and samples for the ProjectPoint API in the next release of ProjectPoint (the release date has not been set yet). Most of the issues you've raised will be addressed then.
In the meantime here are some answers for your questions:
Metadata:
Currently metadata is used for Streamline and Forms. I will only talk about Form Metadata here. We are storing the form contents as metadata on the form object. The form contents are XML and are stored in a form value that is the name of the form. I'm not entirely sure what the namespace is for forms. We have not published the schemas for the form metadata.
So in theory, it would be possible to create a new form. However, the process involves doing more than just creating metadata -- you also have to create a file and do a few other things in the right order. If you need this functionality, let me know and I'll see what I can do about providing documentation.
PPSettings:
It is possible to use this class. Here's a copy of a piece of automated test code that we run on it:
Sub Test_Settings()
Dim ppSettings, oldName
Set ppSettings = Nothing
Set ppSettings = CreateObject("ProjectPointClient.PPSettings")
On Error Resume Next
oldTrace = ppSettings.Trace
wscript.stdout.writeline "Trace=" & oldTrace
ppSettings.Trace = True
RecordTestResult ppSettings.Trace,"TRACE1",""
ppSettings.Trace = False
RecordTestResult not ppSettings.Trace,"TRACE2",""
ppSettings.Trace = oldTrace
oldName = ppSettings.ApplicationName
wscript.stdout.writeline "ApplicationName = " & oldName
ppSettings.ApplicationName = "TestAppXXX"
RecordTestResult ppSettings.ApplicationName = "TestAppXXX", "APPLICATION_NAME",""
ppSettings.ApplicationName = oldName
oldLog = ppSettings.Log
wscript.stdout.writeline "Log=" & oldLog
ppSettings.Log = TRUE
RecordTestResult ppSettings.Log,"LOG1",""
ppSettings.Log = FALSE
RecordTestResult not ppSettings.Log,"LOG2",""
ppSettings.Log = oldLog
wscript.stdout.writeline "LogLevel=" & ppSettings.LogLevel
oldLogLevel = ppSettings.LogLevel
ppSettings.LogLevel = 3
RecordTestResult ppSettings.LogLevel=3,"LOGLEVEL",""
ppSettings.LogLevel = oldLogLevel
wscript.stdout.writeline "TraceLevel=" & ppSettings.TraceLevel
oldTraceLevel = ppSettings.TraceLevel
ppSettings.TraceLevel = 3
RecordTestResult ppSettings.TraceLevel=3,"TRACELEVEL",""
ppSettings.TraceLevel = oldTraceLevel
End Sub
AddFile:
Again here is part of a test program that should show you how to use AddFile:
Function GetFolder(folderName)
Dim folder,rsc
On Error Resume Next
Set folder = CreateObject("ProjectPointClient.PPFolder")
Set rsc = ppSession.GetResource(folderName)
Set folder = rsc
Set GetFolder = folder
End Function
Sub Test_AddFolderFile(folderName,fileName)
Dim folder,nRet,fileResource
On Error Resume Next
Set fileResource = Nothing
Set fileResource = CreateObject("ProjectPointClient.PPFile")
fileResource.LocalPath = testdir + "\" + fileName
nLoc = InStrRev(site,"/")
fileResource.ServerLocation = "/" + Right(site, Len(site)-nLoc) + folderName
fileResource.Name = fileName
Set folder = GetFolder(folderName)
nRet = -1
nRet = folder.AddFile(fileResource)
RecordTestResult nRet=0,"ADD_FOLDERFILE",""
End Sub
LocalPath:
This is used when creating new files on the server. It is the location to upload the file from on your local system. See the AddFile sample above.
AttachSession:
As the documentation states:
This only should be done when the Resource object was created on it's own instead of being returned from a PPSession function.
So some sample code would be something like:
Dim ppSession
Dim ppResource
Set ppSession = Nothing
Set ppSession = CreateObject("ProjectPointClient.PPSession")
nRet = ppSession.Login(user, pwd, site)
Set ppResource = CreateObject("ProjectPointClient.PPResource")
nRet = ppResource.AttachSession(ppSession)
Hope this helps. If you can tell me what you're trying to do, I might be able to provide some better examples.
John