• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Registering ProgId programatically to create Framemaker session

New Here ,
Sep 07, 2021 Sep 07, 2021

Copy link to clipboard

Copied

We created a Console application to create Framemaker session using FDKProgrammer guide. We were able to register Progid manually using the below command line:

Win+R : “C:\Program Files (x86)\Adobe\Adobe FrameMaker 2019 (32 Bit)\Framemaker.exe “/progid:Test321 /auto

We connect to the session using the below code snippet.

       StringT opt_progid;

       CLSID pclsid;

       LPOLESTR progStr;

       HRESULT res;

       F_ObjHandleT docId;

 

       // Get the process name.

 

       opt_progid = (StringT)"NewTest";

 

       // Convert the process name into a GUID

       progStr = (OLECHAR*)malloc(WBUFLEN*sizeof(wchar_t));

       if (0 == MultiByteToWideChar(CP_ACP, 0,

             (char *)opt_progid, -1, progStr, WBUFLEN)) {

             fprintf(stderr, "failed to allocate\n");

             return(1);

 

       }

       if (progStr[0] == '{') // hex-codes within brackets

             res = CLSIDFromString(progStr, &pclsid);

       else

             res = CLSIDFromProgID(progStr, &pclsid);

 

       IntT fReturn = F_ApiWinConnectSession(NULL, NULL, &pclsid);

       if (fReturn != 0)

       {

             FA_errno = FE_Success;

       }

 

       // Print the name of the current document.

       docId = F_ApiGetId(0, FV_SessionId, FP_ActiveDoc);

       if (docId) {

             StringT docname = F_ApiGetString(FO_Session, docId,

                    FP_Name);

             fprintf(stderr, "Current document: %s\n", docname);

             F_ApiDeallocateString(&docname);

 

       }

       else

             fprintf(stderr, "No active document\n");

 

 

Now we want to programmatically register Progid so that FDK Libraries consume the GUID from system registry for the given ProgId (we have dynamic Progid’s being passed while creating the Framemaker session) and work with it to create a Framemaker session etc.

TOPICS
Getting started

Views

92

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Sep 07, 2021 Sep 07, 2021

Copy link to clipboard

Copied

LATEST

Hi,

I'm not that savvy in legalese, but IMHO the wanted process has the smell of automation, for which the sister (or brother) product FrameMaker Publishing Server has to be used.

Is my perception wrong?

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines