Not to diminsh you effort, I'm sure the code will come in handy as reference to others, but I was curious of this was for an external add-in? otherwise, for internal things you could use Dispatch to achieve the same thing without any API coding.
Yes it is for an external application. Sorry I forgot to mention that. Otherwise we do use dispatch.
Thank you for posting this! I have been fighting this for two days. Felt a little silly when I read this!
Hi, I know I am little late to the party, but I thought I would add this as a reference. Here is how I did it (C#):
public static bool Batch_Get(string files, int Handle, IEdmFolder5 folder)
//create batchGet object
IEdmVault7 vault7 = vault as IEdmVault7;
batchGetter = (IEdmBatchGet)vault7.CreateUtility(EdmUtility.EdmUtil_BatchGet);
//create the selection list
var list = new List<EdmSelItem>();
var selectedFile = default(EdmSelItem);
foreach (var file in files)
var ppoRetParentFolder = default(IEdmFolder5);
var aFile = vault.GetFileFromPath(file, out ppoRetParentFolder);
selectedFile = new EdmSelItem();
IEdmPos5 aPos = aFile.GetFirstFolderPosition();
IEdmFolder5 aFolder = aFile.GetNextFolder(aPos);
selectedFile.mlDocID = aFile.ID;
selectedFile.mlProjID = aFolder.ID;
//Do not change this - the array must init as null
EdmSelItem ppoSelection = null;
ppoSelection = list.ToArray();
catch (Exception ex)