主要用到函数说明:

_DMxDrawX::ReadBinStream

从二制流数据中加载图形,详细说明如下:

参数 说明

VARIANT varBinArray

二制流数据,是个byte数组

BSTR sPassword

图纸密码.没有密码,传空字符串

LONG lReadContent

加载内容,如果全部加载,传16777215,十六进制0xFFFFFF

Delphi代码实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
            function OleToMStream(OV:OleVariant): TMemoryStream;
            var
              Data: PByteArray;
              Size: integer;
            beginResult:=TMemoryStream.Create;                     try
                       Size:=VarArrayHighBound(OV,1)-VarArrayLowBound(OV,1)+1;
                       Data:=VarArrayLock(OV);                         try
                           Result.Position:=0;
                           Result.WriteBuffer(Data^,Size);
                         finally
                           VarArrayUnlock(OV);
                         end;
                     except
                       Result.Free;Result:=nil;
                     end;
                   end;
  
                   function MStreamToOle(Strm:TMemoryStream): OleVariant;
                   var
                     Data: PByteArray;
                   beginResult:= VarArrayCreate([0,   Strm.Size   -   1],   varByte);
                     Data:=   VarArrayLock(Result);                     try
                         Strm.Position   :=   0;
                         Strm.ReadBuffer(Data^,   Strm.Size);
                     finally
                         VarArrayUnlock(Result);
                     end;
                   end;
  
                   procedure TForm2.Button6Click(Sender: TObject);
                   var
                     aryData:OleVariant;
                     memStream : TMemoryStream ;
                     aryReadData:     OleVariant;
                   begin 
                      // 写到内存流
                      MxDrawX1.WriteBinStream(aryData,'',23);
                      memStream := OleToMStream(aryData); 
                      // 从内存流加载
                      aryReadData := MStreamToOle( memStream);
                      MxDrawX1.ReadBinStream(aryData,'',23);
  
                   end;

CAD从二制流数据中加载图形(com接口Delphi语言)的更多相关文章

  1. CAD从二制流数据中加载图形(com接口VB语言)

    主要用到函数说明: _DMxDrawX::ReadBinStream 从二制流数据中加载图形,详细说明如下: 参数 说明 VARIANT varBinArray 二制流数据,是个byte数组 BSTR ...

  2. CAD从二制流数据中加载图形(com接口)

    主要用到函数说明: _DMxDrawX::ReadBinStream 从二制流数据中加载图形,详细说明如下: 参数 说明 VARIANT varBinArray 二制流数据,是个byte数组 BSTR ...

  3. libfastcommon总结(二)从文件中加载配置信息

    头文件为ini_file_reader.h 主要接口 IniContext iniContext;//定义配置文件信息 iniLoadFromFile();//加载文件为结构化配置信息    iniG ...

  4. cesium中json,geojson,stk,影像切片等数据的加载

    cesium中json.topojson.geojson.stk,影像切片等数据的加载 一.geojson.topojson,json数据的加载 不管是哪种json,都可以通过GeoJsonDataS ...

  5. C#开发BIMFACE系列37 网页集成开发1:审图系统中加载模型或图纸

    系列目录     [已更新最新开发文章,点击查看详细] 在之前的<C#开发BIMFACE系列>中主要介绍了BIMFACE平台提供的服务端API接口的封装开发与测试过程. 服务端API测试通 ...

  6. 『转载』从内存资源中加载C++程序集:CMemLoadDll

    MemLoadDll.h #if !defined(Q_OS_LINUX) #pragma once typedef BOOL (__stdcall *ProcDllMain)(HINSTANCE, ...

  7. EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载

    之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需要用的,这个系列讲讲如何使用EF操作数据库.老版本的EF主要是通过Ob ...

  8. ArcGIS Engine中加载数据

    ArcGIS Engine中加载数据 http://blog.csdn.net/gisstar/article/details/4206822   分类: AE开发积累2009-05-21 16:49 ...

  9. [Android] Android ViewPager 中加载 Fragment的两种方式 方式(二)

    接上文: https://www.cnblogs.com/wukong1688/p/10693338.html Android ViewPager 中加载 Fragmenet的两种方式 方式(一) 二 ...

随机推荐

  1. union关键字及大小端模式

    1. union 关键字 union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在 union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有 ...

  2. 基于百度AI人脸识别技术的Demo

    编写demo之前首先浏览官方API:http://ai.baidu.com/docs#/Face-API/top 下面是源码: package com.examsafety.test; import ...

  3. 解决Hibernate4执行update操作,不更新数据的问题

    后台封装java对象,使用hibernate4再带的update,执行不更新数据,不报错. 下面贴出解决方法: 失败的方法 hibernate自带update代码:(失效) Session sessi ...

  4. Tarjan求桥

    传送门(poj3177) 这道题是Tarjan求桥的模板题.大意是要求在原图上加上数量最少的边,使得整张图成为一个边双联通分量. 具体的做法是,先在图中求出所有的桥,之后把边双联通分量缩成点,这样的话 ...

  5. [noip模拟赛]bird

    https://www.zybuluo.com/ysner/note/1295414 题面 \(R\)是一个猎人,他准备打猎,他站在平面直角坐标系的\((0,0)\)位置. 天上有\(n\)只小鸟从右 ...

  6. bzoj3612 [Heoi2014]平衡——整数划分

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3612 看了好久才弄清楚题意... 原来整数划分就是这样的啊:https://blog.csd ...

  7. PCB 机器学习(ML.NET)初体验实现PCB加投率预测

    使用ML.NET建立PCB加投率模型对单一蚀刻工序进行加投率预测, 此实例为最简单预测,要想实现全流程加投率预测挑战难度还是挺大的,可以查看另一种关于大数据在PCB行业应用---加投率计算基本原理:P ...

  8. git回到没push的commit

    创建: 2017/10/28   merge master以后数据库出了问题,改好以后发现view有点问题,commit以后没提交就reset了.过后才想起来怎么回去???吓成狗,索性找到了下面这个. ...

  9. sqlalchemy配置多读写库多连接后的关系设置

    前言 一般来说,解决sqlalchemy 连接多个库的最简单的方式是新建两个或多个db.session 相互没有关联,modle配置不同的db.session来连接,这样的话,relationship ...

  10. tp5增加验证的自定义规则