IJCAD 2018 MechanicalでC#を使用してAutoCADのソースを移植する作業を行っております。
機能の1つに「配置選択」というボタンがフォームにあり、それを押下すると
対象のDWGを4方向から見たイメージがボタンに貼り付けられ、ユーザーが選択したボタンの
配置が設定されるという機能があるのですが
今回のAUTOCADからIJCADへの移植に伴い、DWGのバージョンがAC1015からAC1027へと上がりました。
なので事前にDWGをAUTOCADの2013形式で保存してもらっているのですが
以前まで正常に動いていたイメージの抜き出しを行うロジックが動作しなくなってしまいました。
しかし、どのようにプログラムを変更すればイメージが抜き出せるかがわかりません。
プログラムは下記のようなプログラムになります。

FileStream DwgF = null;   // ファイルストリーム 
int PosSentinel;          // ファイル記述ブロック  
BinaryReader br = null;   // バイナリファイルを読む
int TypePreview;          // サムネイルフォーマット
int PosBMP;               // サムネイル位置
int LenBMP;               // サムネイルのサイズ
short biBitCount;         // サムネイルビット深度
BITMAPHEADER BiH;         // BITMAPファイルヘッダー, DWGファイルにはファイルヘッダーが含まれていない
byte[] BMPInfo;           // BMPファイルのDWGファイルに含まれています  
MemoryStream BMPF = new MemoryStream();     // ビットマップファイルストリームを保存する
BinaryWriter BMPR = new BinaryWriter(BMPF); // バイナリファイルを書く
System.Drawing.Image MyImg = null;

try
{
    DwgF = new FileStream(filePath, FileMode.Open, FileAccess.Read); // ファイルストリーム
    br = new BinaryReader(DwgF);
    DwgF.Seek(13, SeekOrigin.Begin);               // 13番目の先頭からバイトを読み込む
    PosSentinel = br.ReadInt32();                  // = 13?17バイト命令のサムネイル説明ブロックの位置
    DwgF.Seek(PosSentinel + 30, SeekOrigin.Begin); // poInt32erから31バイト目のサムネイル記述ブロック
    TypePreview = br.ReadByte();                   // = サムネイルフォーマット情報用の31バイト、2 BMPフォーマット、WMFフォーマット3

    if (TypePreview == 1)
    {
    }
    else if (TypePreview == 2 || TypePreview == 3)
    {
        PosBMP = br.ReadInt32();                    // DWGファイルの場所が保存されます。
        LenBMP = br.ReadInt32();                    // ビットマップサイズ
        DwgF.Seek(PosBMP + 14, SeekOrigin.Begin);   // 正しい位置にあるpoInt32erブロック
        biBitCount = br.ReadInt16();                // 読み取りビット深度
        DwgF.Seek(PosBMP, SeekOrigin.Begin);        // ビットマップの内容のバックアップ
        BMPInfo = br.ReadBytes(LenBMP);             // ヘッダビットマップ情報を含まない
        br.Close();
        DwgF.Close();
        BiH.bfType = 19778;     // ビットマップファイルのヘッダを設定する

        if (biBitCount < 9)
        {
            BiH.bfSize = 54 + 4 * (Int32)(Math.Pow(2, biBitCount)) + LenBMP;
        }
        else
        {
            BiH.bfSize = 54 + LenBMP;
        }

        BiH.bfReserved1 = 0;            // バイトを保つ
        BiH.bfReserved2 = 0;            // バイトを保つ
        BiH.bfOffBits = 14 + 40 + 1024; // 画像データの移行後、ビットマップファイルヘッダの書き込みを開始します。
        BMPR.Write(BiH.bfType);         // ファイルの種類
        BMPR.Write(BiH.bfSize);         // ファイルサイズ
        BMPR.Write(BiH.bfReserved1);    // 0  
        BMPR.Write(BiH.bfReserved2);    // 0  
        BMPR.Write(BiH.bfOffBits);      // 画像データの移行
        BMPR.Write(BMPInfo);            // ビットマップを書き込む
        BMPF.Seek(0, SeekOrigin.Begin); // 先頭のファイルへのpoInt32er
        MyImg = System.Drawing.Image.FromStream(BMPF); // ビットマップファイルオブジェクトを作成する
        BMPR.Close();
        BMPF.Close();
    }
    img = MyImg;
}
catch (EndOfStreamException)
{
    throw new EndOfStreamException("file is not the standard DWG format file, can not be a preview! ");
}
catch (IOException ex)
{
    if (ex.Message == "trying to file poInt32er to the beginning of the file before. /r/n ")
    {
        throw new IOException("file is not the standard DWG format file, can not be a preview! ");
    }
    else if (ex.Message == "file" + "+ FileName +" + "is in use by another process, so the process cannot access the file. ")
    {
        // copy files, to preview  
        //File.Copy (filePath, Application.StartupPath + @ /linshi.dwg, true);  
        //Image Image = GetDwgImage (Application.StartupPath + @ "/linshi.dwg");  
        //File.Delete (Application.StartupPath + @ /linshi.dwg);  
        //Image return;  
    }
    else
    {
        throw new System.Exception(ex.Message);
    }
}
catch (System.Exception ex)
{
    throw new System.Exception(ex.Message);
}
finally
{
    if (DwgF != null)
    {
        DwgF.Close();
    }
    if (br != null)
    {
        br.Close();
    }
    BMPR.Close();
    BMPF.Close();
}

どのようにすれば、IJCAD 2018 MechanicalでDWGのイメージを抜き出せるのでしょうか?