Средства разработки приложений


Отображение библиотеки DDEML в .NET - часть 4


Это, естественно, вызовет NullPointerException при попытке библиотеки DDEML вызвать функцию обратного вызова. Поэтому вызов функции DdeInitialize следующего вида нежелателен:

// Регистрация в библиотеке DDEML

DDEML.DdeInitialize(ref idInst, new DDECallBackDelegate(DDECallBack), 0, 0);

Забегая вперед, отмечу, что для отображения необходимых функций и констант библиотеки DDEML в компоненте ExcelDDEHotConnection служит класс DDEML.

Ниже приведен список остальных функций для работы с DDE:

Делегат функции обратного вызова:

     internal delegate IntPtr DDECallBackDelegate(

     uint wType, //Код транзакции

     uint wFmt, // Формат данных

     IntPtr hConv, // Идентификатор канала

      IntPtr hsz1, // Идентификатор строки (в нашем случае, строки раздела)

      IntPtr hsz2,  // Идентификатор строки (в нашем случае, элемента данных)

      IntPtr hData, // Идентификатор глобальной области данных, где находятся данные

     uint dwData1, // Дополнительный параметр (В нашей работе не рассматривается)

     uint dwData2 // Дополнительный параметр (В нашей работе не рассматривается)

     );         

Отображение функции DdeInitialize:

[DllImport("user32.dll", EntryPoint="DdeInitialize", CharSet=CharSet.Ansi)]

internal static extern uint DdeInitialize(

     ref uint pidInst, DDECallBackDelegate pfnCallback, uint afCmd,uint ulRes);

Отображение функции DdeUninitialize:

[DllImport("user32.dll", EntryPoint="DdeUninitialize", CharSet=CharSet.Ansi)]

internal static extern bool DdeUninitialize(uint idInst);

Отображение функции DdeCreateStringHandle:

[DllImport("user32.dll", EntryPoint="DdeCreateStringHandle", CharSet=CharSet.Ansi)]




Начало  Назад  Вперед



Книжный магазин