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


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