ReactOS 0.4.17-dev-806-gffa4164
atliface.idl File Reference

Go to the source code of this file.

Classes

class  IRegistrarBase
 
interface  IRegistrar
 
interface  IDocHostUIHandlerDispatch
 
interface  IAxWinAmbientDispatch
 
interface  IAxWinAmbientDispatchEx
 

Functions

 DEFINE_GUID (CLSID_Registrar, 0x44ec053a, 0x400f, 0x11d0, 0x9d, 0xcd, 0x00, 0xa0, 0xc9, 0x03, 0x91, 0xd3)
 
HRESULT WINAPI AtlAxCreateControl (LPCOLESTR, HWND, IStream *, IUnknown **)
 
HRESULT WINAPI AtlAxCreateControlEx (LPCOLESTR, HWND, IStream *, IUnknown **, IUnknown **, REFIID, IUnknown *)
 
HRESULT WINAPI AtlAxCreateControlLic (LPCOLESTR, HWND, IStream *, IUnknown **, BSTR)
 
HRESULT WINAPI AtlAxCreateControlLicEx (LPCOLESTR, HWND, IStream *, IUnknown **, IUnknown **, REFIID, IUnknown *, BSTR)
 
BOOL WINAPI AtlAxWinInit (void)
 
HRESULT WINAPI AtlAxGetControl (HWND, IUnknown **)
 
HRESULT WINAPI AtlAxGetHost (HWND, IUnknown **)
 
HWND WINAPI AtlAxCreateDialogW (HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM)
 
HWND WINAPI AtlAxCreateDialogA (HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM)
 
INT_PTR WINAPI AtlAxDialogBoxW (HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM)
 
INT_PTR WINAPI AtlAxDialogBoxA (HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM)
 

Function Documentation

◆ AtlAxCreateControl()

HRESULT WINAPI AtlAxCreateControl ( LPCOLESTR  lpszName,
HWND  hWnd,
IStream pStream,
IUnknown **  ppUnkContainer 
)

Definition at line 982 of file atl_ax.c.

984{
985 return AtlAxCreateControlEx( lpszName, hWnd, pStream, ppUnkContainer,
986 NULL, NULL, NULL );
987}
HWND hWnd
Definition: settings.c:17
#define NULL
Definition: types.h:112
HRESULT WINAPI AtlAxCreateControlEx(const WCHAR *lpTricsData, HWND hwnd, IStream *stream, IUnknown **container, IUnknown **control, REFIID iidSink, IUnknown *punkSink)
Definition: atl_ax.c:1468

◆ AtlAxCreateControlEx()

HRESULT WINAPI AtlAxCreateControlEx ( LPCOLESTR  ,
HWND  ,
IStream ,
IUnknown **  ,
IUnknown **  ,
REFIID  ,
IUnknown  
)

◆ AtlAxCreateControlLic()

HRESULT WINAPI AtlAxCreateControlLic ( LPCOLESTR  ,
HWND  ,
IStream ,
IUnknown **  ,
BSTR   
)

◆ AtlAxCreateControlLicEx()

HRESULT WINAPI AtlAxCreateControlLicEx ( LPCOLESTR  lpszName,
HWND  hWnd,
IStream pStream,
IUnknown **  ppUnkContainer,
IUnknown **  ppUnkControl,
REFIID  iidSink,
IUnknown punkSink,
BSTR  lic 
)

Definition at line 1037 of file atl_ax.c.

1040{
1041 CLSID controlId;
1042 HRESULT hRes;
1043 IOleObject *pControl;
1044 IUnknown *pUnkControl = NULL;
1045 IPersistStreamInit *pPSInit;
1046 IUnknown *pContainer = NULL;
1047 enum content content;
1048
1049 TRACE("(%s %p %p %p %p %p %p %s)\n", debugstr_w(lpszName), hWnd, pStream,
1050 ppUnkContainer, ppUnkControl, iidSink, punkSink, debugstr_w(lic));
1051
1052 if (lic)
1053 FIXME("semi stub\n");
1054
1055 if (ppUnkContainer) *ppUnkContainer = NULL;
1056 if (ppUnkControl) *ppUnkControl = NULL;
1057
1058 content = get_content_type(lpszName, &controlId);
1059
1060 if (content == IsEmpty)
1061 return S_OK;
1062
1063 if (content == IsUnknown)
1064 return CO_E_CLASSSTRING;
1065
1066 hRes = CoCreateInstance( &controlId, 0, CLSCTX_ALL, &IID_IOleObject,
1067 (void**) &pControl );
1068 if ( FAILED( hRes ) )
1069 {
1070 WARN( "cannot create ActiveX control %s instance - error 0x%08lx\n",
1071 debugstr_guid( &controlId ), hRes );
1072 return hRes;
1073 }
1074
1075 hRes = IOleObject_QueryInterface( pControl, &IID_IPersistStreamInit, (void**) &pPSInit );
1076 if ( SUCCEEDED( hRes ) )
1077 {
1078 if (!pStream)
1079 IPersistStreamInit_InitNew( pPSInit );
1080 else
1081 IPersistStreamInit_Load( pPSInit, pStream );
1082 IPersistStreamInit_Release( pPSInit );
1083 } else
1084 WARN("cannot get IID_IPersistStreamInit out of control\n");
1085
1086 IOleObject_QueryInterface( pControl, &IID_IUnknown, (void**) &pUnkControl );
1087 IOleObject_Release( pControl );
1088
1089
1090 hRes = AtlAxAttachControl( pUnkControl, hWnd, &pContainer );
1091 if ( FAILED( hRes ) )
1092 WARN("cannot attach control to window\n");
1093
1094 if ( content == IsURL )
1095 {
1096 IWebBrowser2 *browser;
1097
1098 hRes = IOleObject_QueryInterface( pControl, &IID_IWebBrowser2, (void**) &browser );
1099 if ( !browser )
1100 WARN( "Cannot query IWebBrowser2 interface: %08lx\n", hRes );
1101 else {
1102 VARIANT url;
1103
1104 IWebBrowser2_put_Visible( browser, VARIANT_TRUE ); /* it seems that native does this on URL (but do not on MSHTML:! why? */
1105
1106 V_VT(&url) = VT_BSTR;
1107 V_BSTR(&url) = SysAllocString( lpszName );
1108
1109 hRes = IWebBrowser2_Navigate2( browser, &url, NULL, NULL, NULL, NULL );
1110 if ( FAILED( hRes ) )
1111 WARN( "IWebBrowser2::Navigate2 failed: %08lx\n", hRes );
1113
1114 IWebBrowser2_Release( browser );
1115 }
1116 }
1117
1118 if (ppUnkContainer)
1119 {
1120 *ppUnkContainer = pContainer;
1121 if ( pContainer )
1122 IUnknown_AddRef( pContainer );
1123 }
1124 if (ppUnkControl)
1125 {
1126 *ppUnkControl = pUnkControl;
1127 if ( pUnkControl )
1128 IUnknown_AddRef( pUnkControl );
1129 }
1130
1131 if ( pUnkControl )
1132 IUnknown_Release( pUnkControl );
1133 if ( pContainer )
1134 IUnknown_Release( pContainer );
1135
1136 return S_OK;
1137}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define WARN(fmt,...)
Definition: precomp.h:61
const GUID IID_IUnknown
HRESULT WINAPI AtlAxAttachControl(IUnknown *control, HWND hWnd, IUnknown **container)
Definition: atl_ax.c:1142
content
Definition: atl_ax.c:990
@ IsURL
Definition: atl_ax.c:994
@ IsUnknown
Definition: atl_ax.c:995
@ IsEmpty
Definition: atl_ax.c:991
static enum content get_content_type(LPCOLESTR name, CLSID *control_id)
Definition: atl_ax.c:998
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
Definition: combase.c:1685
@ VT_BSTR
Definition: compat.h:2303
#define S_OK
Definition: intsafe.h:52
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define FAILED(hr)
Definition: intsafe.h:51
#define debugstr_guid
Definition: kernel32.h:35
#define debugstr_w
Definition: kernel32.h:32
static const WCHAR url[]
Definition: encode.c:1384
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:240
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:273
#define V_VT(A)
Definition: oleauto.h:211
#define V_BSTR(A)
Definition: oleauto.h:226
const GUID IID_IOleObject
const GUID IID_IPersistStreamInit
#define TRACE(s)
Definition: solgame.cpp:4
#define CO_E_CLASSSTRING
Definition: winerror.h:3919

Referenced by AtlAxCreateControlEx(), and AtlAxCreateControlLic().

◆ AtlAxCreateDialogA()

HWND WINAPI AtlAxCreateDialogA ( HINSTANCE  hInst,
LPCSTR  name,
HWND  owner,
DLGPROC  dlgProc,
LPARAM  param 
)

Definition at line 1300 of file atl_ax.c.

1301{
1302 HWND res = NULL;
1303 int length;
1304 WCHAR *nameW;
1305
1306 if (IS_INTRESOURCE(name))
1307 return AtlAxCreateDialogW( hInst, (LPCWSTR) name, owner, dlgProc, param );
1308
1309 length = MultiByteToWideChar( CP_ACP, 0, name, -1, NULL, 0 );
1310 nameW = malloc( length * sizeof(WCHAR) );
1311 if (nameW)
1312 {
1314 res = AtlAxCreateDialogW( hInst, nameW, owner, dlgProc, param );
1315 free( nameW );
1316 }
1317 return res;
1318}
static const WCHAR nameW[]
Definition: main.c:49
#define free
Definition: debug_ros.c:5
#define malloc
Definition: debug_ros.c:4
HWND WINAPI AtlAxCreateDialogW(HINSTANCE hInst, LPCWSTR name, HWND owner, DLGPROC dlgProc, LPARAM param)
Definition: atl_ax.c:1326
#define CP_ACP
Definition: compat.h:109
#define MultiByteToWideChar
Definition: compat.h:110
#define IS_INTRESOURCE(x)
Definition: loader.c:613
HINSTANCE hInst
Definition: dxdiag.c:13
GLuint res
Definition: glext.h:9613
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
GLfloat param
Definition: glext.h:5796
short WCHAR
Definition: pedump.c:58
Definition: name.c:39
const uint16_t * LPCWSTR
Definition: typedefs.h:57

◆ AtlAxCreateDialogW()

HWND WINAPI AtlAxCreateDialogW ( HINSTANCE  hInst,
LPCWSTR  name,
HWND  owner,
DLGPROC  dlgProc,
LPARAM  param 
)

Definition at line 1326 of file atl_ax.c.

1327{
1328 HRSRC hrsrc;
1329 HGLOBAL hgl;
1331 LPDLGTEMPLATEW newptr;
1332 HWND res;
1333
1334 TRACE("(%p %s %p %p %Ix)\n", hInst, debugstr_w(name), owner, dlgProc, param);
1335
1336 hrsrc = FindResourceW( hInst, name, (LPWSTR)RT_DIALOG );
1337 if ( !hrsrc )
1338 return NULL;
1339 hgl = LoadResource (hInst, hrsrc);
1340 if ( !hgl )
1341 return NULL;
1342 ptr = LockResource ( hgl );
1343 if (!ptr)
1344 {
1345 FreeResource( hgl );
1346 return NULL;
1347 }
1348 newptr = AX_ConvertDialogTemplate( ptr );
1349 if ( newptr )
1350 {
1351 res = CreateDialogIndirectParamW( hInst, newptr, owner, dlgProc, param );
1352 free( newptr );
1353 } else
1354 res = NULL;
1355 FreeResource ( hrsrc );
1356 return res;
1357}
static LPDLGTEMPLATEW AX_ConvertDialogTemplate(LPCDLGTEMPLATEW src_tmpl)
Definition: atl_ax.c:1175
BOOL WINAPI FreeResource(HGLOBAL handle)
Definition: res.c:559
HRSRC WINAPI FindResourceW(HINSTANCE hModule, LPCWSTR name, LPCWSTR type)
Definition: res.c:176
LPVOID WINAPI LockResource(HGLOBAL handle)
Definition: res.c:550
HGLOBAL WINAPI LoadResource(HINSTANCE hModule, HRSRC hRsrc)
Definition: res.c:532
static PVOID ptr
Definition: dispmode.c:27
#define RT_DIALOG
Definition: pedump.c:367
uint16_t * LPWSTR
Definition: typedefs.h:56
HWND WINAPI CreateDialogIndirectParamW(_In_opt_ HINSTANCE, _In_ LPCDLGTEMPLATE, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)

Referenced by AtlAxCreateDialogA().

◆ AtlAxDialogBoxA()

INT_PTR WINAPI AtlAxDialogBoxA ( HINSTANCE  ,
LPCSTR  ,
HWND  ,
DLGPROC  ,
LPARAM   
)

◆ AtlAxDialogBoxW()

INT_PTR WINAPI AtlAxDialogBoxW ( HINSTANCE  ,
LPCWSTR  ,
HWND  ,
DLGPROC  ,
LPARAM   
)

◆ AtlAxGetControl()

HRESULT WINAPI AtlAxGetControl ( HWND  hWnd,
IUnknown **  pUnk 
)

Definition at line 1385 of file atl_ax.c.

1386{
1387 IOCS *This;
1388
1389 TRACE( "(%p, %p)\n", hWnd, pUnk );
1390
1391 *pUnk = NULL;
1392
1393 This = (IOCS*) GetPropW( hWnd, L"__WINE_ATL_IOCS" );
1394 if ( !This || !This->control )
1395 {
1396 WARN("No control attached to %p\n", hWnd );
1397 return E_FAIL;
1398 }
1399
1400 return IOleObject_QueryInterface( This->control, &IID_IUnknown, (void**) pUnk );
1401}
#define E_FAIL
Definition: ddrawi.h:102
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
Definition: dplayx.c:30
#define L(x)
Definition: resources.c:13
Definition: atl_ax.c:43
HANDLE WINAPI GetPropW(_In_ HWND, _In_ LPCWSTR)

Referenced by test_ax_win().

◆ AtlAxGetHost()

HRESULT WINAPI AtlAxGetHost ( HWND  hWnd,
IUnknown **  host 
)

Definition at line 1363 of file atl_ax.c.

1364{
1365 IOCS *This;
1366
1367 TRACE("(%p, %p)\n", hWnd, host);
1368
1369 *host = NULL;
1370
1371 This = (IOCS*) GetPropW( hWnd, L"__WINE_ATL_IOCS" );
1372 if ( !This )
1373 {
1374 WARN("No container attached to %p\n", hWnd );
1375 return E_FAIL;
1376 }
1377
1378 return IOleClientSite_QueryInterface(&This->IOleClientSite_iface, &IID_IUnknown, (void**)host);
1379}
Definition: txthost.c:37

◆ AtlAxWinInit()

BOOL WINAPI AtlAxWinInit ( void  )

Definition at line 86 of file atl_ax.c.

87{
88 WNDCLASSEXW wcex;
89
90#if _ATL_VER <= _ATL_VER_30
91#define ATL_NAME_SUFFIX
92#elif _ATL_VER == _ATL_VER_80
93#define ATL_NAME_SUFFIX L"80"
94#elif _ATL_VER == _ATL_VER_90
95#define ATL_NAME_SUFFIX L"90"
96#elif _ATL_VER == _ATL_VER_100
97#define ATL_NAME_SUFFIX L"100"
98#elif _ATL_VER == _ATL_VER_110
99#define ATL_NAME_SUFFIX L"110"
100#else
101#error Unsupported version
102#endif
103
104 static const WCHAR AtlAxWinW[] = L"AtlAxWin" ATL_NAME_SUFFIX;
105
106 FIXME("version %04x semi-stub\n", _ATL_VER);
107
108 if ( FAILED( OleInitialize(NULL) ) )
109 return FALSE;
110
111 wcex.cbSize = sizeof(wcex);
113 wcex.cbClsExtra = 0;
114 wcex.cbWndExtra = 0;
116 wcex.hIcon = NULL;
117 wcex.hCursor = NULL;
118 wcex.hbrBackground = NULL;
119 wcex.lpszMenuName = NULL;
120 wcex.hIconSm = 0;
121
123 wcex.lpszClassName = AtlAxWinW;
124 if ( !RegisterClassExW( &wcex ) )
125 return FALSE;
126
127 if(_ATL_VER > _ATL_VER_30) {
128 static const WCHAR AtlAxWinLicW[] = L"AtlAxWinLic" ATL_NAME_SUFFIX;
129
130 wcex.lpszClassName = AtlAxWinLicW;
131 if ( !RegisterClassExW( &wcex ) )
132 return FALSE;
133 }
134
135 return TRUE;
136}
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define ATL_NAME_SUFFIX
static LRESULT CALLBACK AtlAxWin_wndproc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam)
Definition: atl_ax.c:61
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:838
HRESULT WINAPI DECLSPEC_HOTPATCH OleInitialize(LPVOID reserved)
Definition: ole2.c:162
#define _ATL_VER_30
Definition: atlbase.h:28
#define _ATL_VER
Definition: atlbase.h:36
LPCWSTR lpszClassName
Definition: winuser.h:3334
LPCWSTR lpszMenuName
Definition: winuser.h:3333
HBRUSH hbrBackground
Definition: winuser.h:3332
WNDPROC lpfnWndProc
Definition: winuser.h:3326
UINT cbSize
Definition: winuser.h:3324
int cbWndExtra
Definition: winuser.h:3328
HCURSOR hCursor
Definition: winuser.h:3331
HICON hIconSm
Definition: winuser.h:3335
HINSTANCE hInstance
Definition: winuser.h:3329
UINT style
Definition: winuser.h:3325
int cbClsExtra
Definition: winuser.h:3327
HICON hIcon
Definition: winuser.h:3330
#define CS_DBLCLKS
Definition: winuser.h:659
ATOM WINAPI RegisterClassExW(_In_ CONST WNDCLASSEXW *)
#define CS_GLOBALCLASS
Definition: winuser.h:660

Referenced by test_ax_win().

◆ DEFINE_GUID()

DEFINE_GUID ( CLSID_Registrar  ,
0x44ec053a  ,
0x400f  ,
0x11d0  ,
0x9d  ,
0xcd  ,
0x00  ,
0xa0  ,
0xc9  ,
0x03  ,
0x91  ,
0xd3   
)