#include "../../FuckATL/FuckATL/FuckATL.h" #include "../../FuckATL/FuckATL/FuckATL_i.c" #include <iostream> usingnamespace std; void main(void) { // Declare and HRESULT and a pointer to the Simple_ATL interface HRESULT hr; ICaluNumCtrl *IFirstATL = NULL; // Now we will intilize COM hr = CoInitialize(0); // Use the SUCCEDED macro and see if we can get a pointer to // the interface if(SUCCEEDED(hr)) { hr = CoCreateInstance( CLSID_CaluNumCtrl, NULL, CLSCTX_INPROC_SERVER, IID_ICaluNumCtrl, (void**) &IFirstATL); // If we succeeded then call the AddNumbers method, if it failed // then display an appropriate message to the user. if(SUCCEEDED(hr)) { long ReturnValue; hr = IFirstATL->AddNumbers(5, 7, &ReturnValue); cout <<"The answer for 5 + 7 is: "<< ReturnValue << endl; short num; IFirstATL->get_NUM(&num); cout<<"num is: "<<num<<endl; hr = IFirstATL->Release(); } else { cout <<"CoCreateInstance Failed."<< endl; } } // Uninitialize COM CoUninitialize(); system("pause"); }
来到IE的世界
最后我们将此ActiveX组件嵌入到html页面中,对其进行测试.新建一个html页面,代码如下:
<HTML> <HEAD> <TITLE>New Page</TITLE> <script language="javascript"> function doTest() { var sum = FuckATL1.AddNumbers(3,4); alert(sum); } </script> </HEAD> <BODY> <OBJECT ID="FuckATL1" CLASSID="CLSID:7BF3B65F-A800-4604-AE6B-91844EFD5F05"> </OBJECT> <input type="button" value="测试加法" id="btnOK" onclick="doTest();"></input> </BODY> </HTML>