[CONNECT C++] Converting old hidden line removal code using mdlView_findNamedElmdscr.

I'm porting some C++ drawing creation code where one of the usual operations is to create named views in model and then those views are attached into separate drawing file. One option is to have setting to specify that views is hidden line view, where instead of using the saved views directly from the model, the views are processed to hidden line files and those are used with drawing. The old hidden line removal code uses mdlView_findNamedElmdscr, which is removed from CONNECT. How can this be converted to CONNECT? The CE version needs to behave exactly like V8i version.

Below is simplified version of V8i code to provide idea what the code is doing.

  int                            view_number = 7, buffer_size;
  ULong                      buffer[50];
  UShort                     typemask[8], levelmask[8];
  MSElementDescr   *eldP;
  UInt32                      filePos;
  DgnModelRefP        hln_file;

  mdlView_findNamedElmdscr(&eldP, &filePos, viewName, NULL, mdlModelRef_getActive());
  
  // Attach named view to viewport 8
  if (!mdlView_isActive(view_number)) 
    mdlView_turnOn(view_number);
 
  mdlView_attachNamed(viewName, NULL, view_number);
  mdlWorkDgn_createFile(&hln_file, fileName, DGNFILE_FORMAT_V8, ACTIVEMODEL,
                        SEED_CopyDefaultData, NULL, NULL, TRUE);                 

  // Scan design file header information, to be copied into the
  memset(typemask, 0, sizeof(typemask));
  typemask[0] = TMSK0_DGNFIL_HEADER;
  typemask[4] = TMSK4_MICROSTATION_ELM;
  memset(levelmask, 0xffff, sizeof(levelmask));
  buffer_size = sizeof(buffer) / sizeof(ULong);

  // Returns a buffer of filePositions of elements that are
  // of type defined in the typemask buffer and are on a level
  // defined in the levelmask buffer.
  dppDrawing_findElementsOfTypeOnLevel(typemask, levelmask, buffer, buffer_size, &nr_found);

  // Write design file header information into hidden line output file
  for (i = 0; i < nr_found; i++) {
    mdlElmdscr_read(&eldP, buffer[i], MASTERFILE, FALSE, NULL);
    mdlWorkDgn_write(eldP, -1, hln_file);
    mdlElmdscr_freeAll(&eldP);
  } 

  // Write saved view information
  mdlElmdscr_read(&eldP, filePos, MASTERFILE, FALSE, NULL);
  mdlWorkDgn_write(eldP, -1, hln_file);
  mdlElmdscr_freeAll(&eldP);

  // Start hidden line removal
  // Filemask is set to include master file and all reference files
  mdlView_hiddenLineRemoval3(preFunction, visibleFunction, invisibleFunction,
      view_number, modelRefListP, 0.0, TRUE, FALSE,
      FALSE, TRUE, FALSE, TRUE, TRUE, TRUE, TRUE);

  // Close hidden line file
  mdlWorkDgn_saveChanges(hln_file);
  mdlWorkDgn_closeFile(hln_file);

  // Close view 8
  mdlView_turnOff(view_number);