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に対応するものを調べる必要が。
コメント