Интерфейс 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
База данных не могла быть сохранена, поскольку на запоминающем устройстве не осталось места.