Шаг 176.
Среда программирования Visual C++. Создание СОМ-компонентов средствами ATL. Реализация методов компонента

    На этом шаге мы рассмотрим реализацию методов компонента.

    Теперь, реализовав свойство Key, Вы можете добавлять код метода EncodeString().

    Для понимания приведенной выше функции Вам могут понадобься дополнительные знания о BSTR. BSTR - это по существу указатель на строку Unicode-символов типа wchar_t. Здесь видно, как К-параметр передается в стандартную библиотечную функцию wspy(). Однако BSTR не просто массив символов - в его начале находится 4-байтовое целое число, указывающее на число байт в данной строке. А это значит, что Вы обязаны выделить память для BSTR с помощыо Win32-функции SysAllocString(). В приведенном ниже примере память для переменной типа BSTR выделяется на основе уже существующей BSTR. Еще один способ выделения памяти для BSTR - на основе массива wchar_t, как показано ниже:

  wchar_t wszPeas[] = L"Visualize Whirled Peas"; 
  BSTR bstrPeas = ::SysAllocString(wszPeas);

    Закончив работать с BSTR-переменной, освободите занимаем ею память, вызвав SysFreeString(). Обратите внимание, что в нашем примере мы не освобождаем память, занятую переменной outstring, так как ее необходимо вернуть клиенту. В СОМ освобождение ресурсов, выделенных сервером при выполнении запроса, входит в обязанности клиента.

    Заметьте также, что EncodeString() обращается к функции SysStringLen() для определения длины (в символах) BSTR.

    Теперь Вы можете приступать к сборке проекта Encode Server. После успешной компиляции и компоновки Visual Studio самостоятельно зарегистрирует Ваш объект Encoder на локальной машине, сделав его доступным приложениям-клиентам.

    Текст этого приложения можно взять здесь (28,5 Кб).

    Со следующего шага мы начнем более детально изучать код ATL COM-компонента.




Предыдущий шаг Содержание Следующий шаг