Поделиться через


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