Интерфейс 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
При получении доступа к идентификатору потока произошла ошибка.
Замечания
Чтобы проверить, содержит ли текущее соединение внедренную базу данных, пользователь должен проверить значение свойства DBPROP_MSMD_EMBEDDED_DATA, являющееся одним из свойств соединения OLE DB.
Возможные значения для DBPROP_MSMD_EMBEDDED_DATA.
Название |
Значение |
Определение |
---|---|---|
DBPROPVAL_EMBED_NONE |
0x00 |
Доступная внедренная база данных отсутствует |
DBPROPVAL_EMBED_EMBEDDED |
0x01 |
Текущее приложение содержит внедренную базу данных |
DBPROPVAL_EMBED_LINKED |
0x02 |
Внедренная база данных размещена в удаленном приложении (т. е. на сервере SharePoint) |
Источник
[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
TRUE, если вызывающий объект находится в приложении, размещенном в службе (например IIS).
Возвращаемое значение
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
База данных не могла быть сохранена, поскольку на запоминающем устройстве не осталось места.