PhotoshopSDKのOLE Automationに

SaveFileAsPDF()
Function SaveFileAsPDF(FullPath As String, Encoding As Long, Quality As Long) As Long

とある。てっきり私はCOMにこういう名前のメソッドだかファンクションだかがあるんだろ、インスタンス化できたし後一歩。と思っていたら、実はサンプルのVBのだったという。

'Encoding = phEnumJPEG or phEnumZip
'Quality = 0 to 10
Function SaveFileAsPDF(FullPath As String, Encoding As Long, Quality As Long) As Long
    Dim descriptor As IActionDescriptor
    Dim object As IActionDescriptor
    Dim result As IActionDescriptor
    Dim control As IActionControl
    
    ' create the descriptor and control objects
    Set control = PSApp.MakeControlObject
    Set descriptor = PSApp.MakeDescriptor
    Set object = PSApp.MakeDescriptor
    
    ' Save the file PDF format
    object.PutEnumerated phKeyEncoding, phTypeEncoding, Encoding
    If (Encoding = phEnumJPEG) Then
        object.PutInteger phKeyQuality, Quality
    End If
    descriptor.PutObject phKeyAs, phClassPhotoshopPDFFormat, object
    descriptor.PutPath phKeyIn, FullPath
    descriptor.PutBoolean phKeyLowerCase, True
    
    'play the event and get the result back
    Set result = control.Play(phEventSave, descriptor, phDialogSilent)

    ' now check for errors
    SaveFileAsPDF = CheckPlayResult(result)
End Function

とある。それにしても↑ってBASICに見えないよなー。私の知ってるPC-1211やPC-8801mkIIやFM-7のBASICはこんな言語じゃなかった。行番号も無いし小文字多いし。判るのは「'」だけだ。REM。
どうやら上記の謎言語を解読してVC++に移植する必要があるらしい。ちょっと遠ざかったかも。
多分control.Playがinvokeな気がする。
もうちょっと判りやすそうな

Dim App as PhotoshopApplication
Dim PhotoDoc as IAutoPSDoc
Set App = CreateObject("Photoshop.Application")
Set PhotoDoc = App.Open("C:\files\photoshop\MyPicture.PSD")
PhotoDoc.Close
App.Quit

から行くか。まずはIAutoPSDocに対応するものを調べる必要が。