IMDEmbedded 接口
IMDEmbedded 接口是用于管理嵌入的 PowerPivot 数据库或表格模型数据库的公共接口。 此接口继承自 IPersistStream
接口。 此接口允许以下操作:
获取对容器文档中嵌入流的标识符。
设置包含文档的 URL。
设置一个标志,以便指示嵌入应用程序是否处于宿主环境中。
设置嵌入应用程序使用的临时文件的路径。
取消当前嵌入的操作。
获取流) 的估计大小 (字节数,以保存嵌入的对象。 从
IPersistStream
继承。验证嵌入的数据库自上次保存以来是否已更改。 从
IPersistStream
继承。将嵌入的数据库加载到本地引擎或进程内引擎。 从
IPersistStream
继承。将本地或进程内数据库保存到容器文档中的嵌入流。 从
IPersistStream
继承。
参考
以下参考记录IMDEmbedded
了 msmd.h 头文件中所示的 接口。
源文件:PXOEmbeddedData.idl
[
local,
object,
uuid(6B6691CF-5453-41c2-ADD9-4F320B7FD421),
pointer_default(unique)
]
interface IMDEmbeddedData : IPersistStream
{
[id(1), helpstring("Set flag indicating if the application is in a hosted environment")]
HRESULT SetHosted(
[in] BOOL in_fIsHosted);
[id(2), helpstring("Set the URL for the document containing the embedded stream")]
HRESULT SetContainerURL(
[in] BSTR in_bstrURL);
[id(3), helpstring("Get identifier used to look up embedded stream in container document")]
HRESULT GetStreamIdentifier(
[out, retval] BSTR* out_pbstrStreamId);
[id(4), helpstring("Set the path used by the embedding application for temporary files")]
HRESULT SetTempDirPath(
[in] BSTR in_bstrPath);
[id(5), helpstring("Cancel the current operation")]
HRESULT Cancel();
};
IMDEmbeddedData::GetStreamIdentifier
HRESULT GetStreamIdentifier (
[out, retval] BSTR * out_pbstrStreamId
)
说明
获取宿主应用程序使用的针对容器文档中嵌入流的标识符。
参数
out_pbstrStreamId
指定流标识符的位置。
返回值
S_OK
流标识符已成功返回。
S_FALSE
没有流标识符。
E_FAIL
在访问流标识符时出现错误。
备注
为了确认当前连接是否包含嵌入数据库,用户应从 OLE DB 连接属性查看 DBPROP_MSMD_EMBEDDED_DATA 属性的值。
DBPROP_MSMD_EMBEDDED_DATA 的可能值包括:
名称 | 值 | 定义 |
---|---|---|
DBPROPVAL_EMBED_NONE | 0x00 | 没有可用的嵌入数据库 |
DBPROPVAL_EMBED_EMBEDDED | 0x01 | 当前应用程序包含嵌入数据库 |
DBPROPVAL_EMBED_LINKED | 0x02 | 嵌入数据库在远程应用程序(例如 SharePoint Server)中承载 |
源
[id(1), helpstring("Get identifier used to look up embedded stream in container document")]
HRESULT GetStreamIdentifier(
[out, retval] BSTR* out_pbstrStreamId);
IMDEmbeddedData::SetContainerURL
HRESULT SetContainerURL (
[in] BSTR in_bstrURL
)
说明
设置包含嵌入流的文件的 URL。
参数
in_bstrURL
指定包含文档的 URL。
返回值
S_OK
容器 URL 已成功设置。
E_FAIL
在设置容器 URL 时出错。
源
[id(2), helpstring("Set the URL for the document containing the embedded stream")]
HRESULT SetContainerURL(
[in] BSTR in_bstrURL);
IMDEmbeddedData::SetHosted
HRESULT SetHosted (
[in] BOOL in_fIsHosted
)
说明
设置一个标志,以便指示嵌入应用程序是否处于宿主环境中。
参数
in_ftHosted
如果调用方在服务应用程序(例如 IIS)中承载,则为 TRUE。
返回值
S_OK
该标志已成功设置。
E_FAIL
在设置标志时出错。
源
[id(5), helpstring("Set flag indicating if the application is in a hosted environment")]
HRESULT SetHosted(
[in] BOOL in_fIsHosted);
IMDEmbeddedData::SetTempDirPath
HRESULT SetTempDirPath (
[in] BSTR in_bstrPath
)
说明
设置嵌入应用程序使用的临时文件的路径。
参数
in_bstrPath
宿主应用程序用于临时文件的路径。
返回值
S_OK
临时文件目录已成功设置。
E_FAIL
在设置路径时出错。
源
[id(4), helpstring("Set the path used by the host application for temporary files")]
HRESULT SetTempDirPath(
[in] BSTR in_bstrPath);
IMDEmbeddedData::Cancel
HRESULT Cancel ( void )
说明
取消当前嵌入的数据库操作
参数
无。
返回值
S_OK
操作已成功取消。
DB_E_CANTCANCEL
当前没有正在进行中的可取消操作。
E_FAIL
在取消嵌入的操作时出错。
源
[id(5), helpstring("Cancel the current operation")]
HRESULT Cancel();
IMDEmbeddedData::GetSizeMax (IPersistStream::GetSizeMax)
HRESULT GetSizeMax (
[out] ULARGE_INTEGER * out_pcbSize
)
说明
获取流的估计大小(以字节为单位)以便保存嵌入的对象。 从 IPersistStream
继承。
参数
in_bstrPath
嵌入的数据库图像的估计大小(以字节为单位)。
返回值
S_OK
该大小已成功获取。
E_FAIL
在获取大小时出错。
IMDEmbeddedData::IsDirty (IPersistStream::IsDirty)
HRESULT IsDirty ( void )
说明
确认自上次保存后嵌入的数据库是否已更改。 从 IPersistStream
继承。
参数
无
返回值
S_OK
自上次保存后数据库已更改。
S_FALSE
自上次保存后数据库未更改。
E_FAIL
在获取数据库状态时出错。
IMDEmbeddedData::Load (IPersistStream::Load)
HRESULT Load (
[in] IStream * in_pStm
)
说明
将嵌入的数据库加载到本地或进程内引擎。 从 IPersistStream
继承。
参数
in_pStm
指向从其加载嵌入的数据库的流接口的指针。
返回值
S_OK
数据库已成功加载。
E_OUTOFMEMORY
没有足够的内存可用来加载数据库。
E_FAIL
在加载数据库时出错,不同于 E_OUTOFMEMORY
。
IMDEmbeddedData::Save (IPersistStream::Save)
HRESULT Save (
[in] IStream * in_pStm,
[in] BOOL in_fClearDirty
)
说明
将本地数据库或进程内数据库保存到容器文档中的嵌入流中。 从 IPersistStream
继承。
参数
in_pStm
指向将嵌入的数据库保存到的流接口的指针。
in_fClearDirty
一个标志,该标志指示在此操作后是否应清除脏标志。
返回值
S_OK
数据库已成功保存。
STG_E_CANTSAVE
在保存数据库时出错,不同于 STG_E_MEDIUMFULL
。
STG_E_MEDIUMFULL
因为在存储设备上没有剩余空间,所以该数据库无法保存。