Mfc 如何在自定义OLE对象中实现类似Excel的OLE链接行为

Mfc 如何在自定义OLE对象中实现类似Excel的OLE链接行为,mfc,ms-word,ole,Mfc,Ms Word,Ole,在Word中,您可以链接到Excel电子表格中的特定单元格—电子表格本身可以作为单独的文件存在,也可以作为Word文档中的嵌入对象存在。 然后,您可以创建指向该电子表格中特定单元格的链接,通常是通过从在位激活的电子表格复制单元格,然后使用“专用粘贴”将链接粘贴到复制的单元格。链接使用excel的!第一张!R2C1格式,用于标识单元格,您可以编辑此名称以链接到不同的单元格 如何为使用MFC OLE类构建的自定义OLE对象实现相同的效果? 是否有可能,或者Word是否使用Excel的内置知识来实现这

在Word中,您可以链接到Excel电子表格中的特定单元格—电子表格本身可以作为单独的文件存在,也可以作为Word文档中的嵌入对象存在。 然后,您可以创建指向该电子表格中特定单元格的链接,通常是通过从在位激活的电子表格复制单元格,然后使用“专用粘贴”将链接粘贴到复制的单元格。链接使用excel的!第一张!R2C1格式,用于标识单元格,您可以编辑此名称以链接到不同的单元格

如何为使用MFC OLE类构建的自定义OLE对象实现相同的效果? 是否有可能,或者Word是否使用Excel的内置知识来实现这一点?

简单的答案是Item名字。要做到这一点,您需要实现IOleItemContainer

当与文件名字对象组合时,项名字对象形成完整的路径。因此,项名字将路径名的概念扩展到文件系统之外,定义路径名来标识单个对象,而不仅仅是文件

答案是否定的,Word并没有利用有关Excel的秘密知识,反之亦然,尽管我确信将Excel嵌入Word作为主要用例构建OLE会有所帮助


您还可以在Internet Explorer中嵌入Excel范围,或几乎任何支持嵌入的内容。通过使用Set oRange=GetObjectc:\path\to\spreadsheet.xls,您可以从VBScript访问范围对象并更改其属性!第一张!R2C1或类似产品

好的,既然已经创建了项目名字对象,那么如何像CreateItemMoniker的doco所说的那样“分发它”?你在ROT中注册了吗?嗨,没有ROT是针对主对象的,不是其中的项目。对于OLE链接行为,您需要提供CF_LINKSOURCE。通常,它通过“特殊粘贴”从剪贴板到达目的地。MSDN探索的一个良好起点是: