Нужны доки... хороший хелп. примеры. ссылки. по сабжу.
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q159621&sd=tech
[MSDN]
1. Q. What is the difference between an OLE control and an ActiveX control?
A. No difference. "ActiveX control" renames and restructures the OLE controls technology. For marketing reasons, the term OLE has come full circle and once again refers to the OLE technologies that apply to object linking and embedding only. The term "OLE control" has been replaced with the "ActiveX control" to distance the name from the older Object Linking and Embedding technology with which controls have very little in common. No one should use the term "OLE control" anymore.
[/MSDN]
Читайте Inside OLE
http://soproger.utech.ru/shelek/viewfiles.php-id=18.htm
Но прежде чем вы собираетесь бежать качать книгу и писать на WinApi

OLE-сервер, скажу, что затея эта не очень хорошая,
что легче и лучше взять ATL т.к иначе вам придётся реализовать кучу интерфейсов, на это уйдёт у вас месяц, и после этого вы обнаружете, что ваш контрол не будет работать и в половине контейнеров, хотя вы могли бы в ATL сделать его за пару дней. Писать ActiveX контрол имеет смысл если вы чётко знаете, что это должен быть за контрол, и в каком приложении должен работать, и хорошо разбираться в OLE и COM.
Вам обязательно нужно будет реализовать интерфейсы
IOleObject Для того, чтобы контейнер мог узнать ваш видимый размер с помощью GetExtent, для того, чтобы контейнер мог подавать вам команды с помощью DoVerb
IOleInPlaceObject Для того, что
IViewObject2 Для отрисовки не активированного объекта
IClassFactory для создания объекта. Это основа COM.
Кроме того, если хотите от OLE-объекта получать события в контейнере, то так же нужно реализовать интерфейсы
IConnectionPointContainer — контейнер точек соединения
IConnectionPoint точка соединения.
Если хотите страницы свойств — ну тогда ещё нужно реализовать. Акселератор — ещё реализовать. Для сериализации контрола — ещё. Для drag'n'drop — ещё...
Однако если бы шибко нужно было сделать контрол простенький типа кнопки, и приспичило именно на WinApi, то взяться можно было бы, если бы не оставалось другого выбора...
... << RSDN@Home 1.1.4 stable rev. 625>>
Пост, конечно, справедливый — но позволю себе не согласиться в одном.
На реализацию всех вышеперечисленных интерфейсов уходит... час-два? Не будет работать в половине контейнеров? Проверить, какие ещё интерфейсы нужно для них реализовать. А объектного кода в вышеперечисленных интерфейсах — с гулькин нос.
Единожды потратив некоторое время на реализацию этих интерфейсов, я про них и думать забыл в следующих нескольких проектах, просто подключал заголовки файлов...
Error checking omitted for clarity. © Microsoft