Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // SOAnimacjaCtrl.cpp : Implementation of the CSOAnimacjaCtrl ActiveX Control class.
- #include "stdafx.h"
- #include "ActiveX.h"
- #include "SOAnimacjaCtrl.h"
- #include "SOAnimacjaPpg.h"
- #include ".\soanimacjactrl.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #endif
- IMPLEMENT_DYNCREATE(CSOAnimacjaCtrl, COleControl)
- // Message map
- BEGIN_MESSAGE_MAP(CSOAnimacjaCtrl, COleControl)
- ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
- ON_WM_CREATE()
- END_MESSAGE_MAP()
- // Dispatch map
- BEGIN_DISPATCH_MAP(CSOAnimacjaCtrl, COleControl)
- DISP_FUNCTION_ID(CSOAnimacjaCtrl, "AboutBox", DISPID_ABOUTBOX, AboutBox, VT_EMPTY, VTS_NONE)
- DISP_FUNCTION_ID(CSOAnimacjaCtrl, "Uruchom", dispidUruchom, Uruchom, VT_EMPTY, VTS_NONE)
- DISP_FUNCTION_ID(CSOAnimacjaCtrl, "Zatrzymaj", dispidZatrzymaj, Zatrzymaj, VT_EMPTY, VTS_NONE)
- DISP_PROPERTY_EX_ID(CSOAnimacjaCtrl, "FileName", dispidFileName, GetFileName, SetFileName, VT_BSTR)
- END_DISPATCH_MAP()
- // Event map
- BEGIN_EVENT_MAP(CSOAnimacjaCtrl, COleControl)
- END_EVENT_MAP()
- // Property pages
- // TODO: Add more property pages as needed. Remember to increase the count!
- BEGIN_PROPPAGEIDS(CSOAnimacjaCtrl, 1)
- PROPPAGEID(CSOAnimacjaPropPage::guid)
- END_PROPPAGEIDS(CSOAnimacjaCtrl)
- // Initialize class factory and guid
- IMPLEMENT_OLECREATE_EX(CSOAnimacjaCtrl, "ACTIVEX.SOAnimacjaCtrl.1",
- 0x868be5f4, 0x6621, 0x4957, 0x86, 0x1b, 0x3d, 0x70, 0x19, 0x8e, 0x83, 0xba)
- // Type library ID and version
- IMPLEMENT_OLETYPELIB(CSOAnimacjaCtrl, _tlid, _wVerMajor, _wVerMinor)
- // Interface IDs
- const IID BASED_CODE IID_DActiveX =
- { 0xF7079B75, 0x586B, 0x4B4F, { 0x94, 0x6B, 0x6C, 0x5, 0xA5, 0xD5, 0xC0, 0x2F } };
- const IID BASED_CODE IID_DActiveXEvents =
- { 0x583CF5B7, 0x44A0, 0x4438, { 0xA1, 0xF9, 0x3C, 0x79, 0xB1, 0x5C, 0xBA, 0x45 } };
- // Control type information
- static const DWORD BASED_CODE _dwActiveXOleMisc =
- OLEMISC_ACTIVATEWHENVISIBLE |
- OLEMISC_SETCLIENTSITEFIRST |
- OLEMISC_INSIDEOUT |
- OLEMISC_CANTLINKINSIDE |
- OLEMISC_RECOMPOSEONRESIZE;
- IMPLEMENT_OLECTLTYPE(CSOAnimacjaCtrl, IDS_ACTIVEX, _dwActiveXOleMisc)
- // CSOAnimacjaCtrl::CSOAnimacjaCtrlFactory::UpdateRegistry -
- // Adds or removes system registry entries for CSOAnimacjaCtrl
- BOOL CSOAnimacjaCtrl::CSOAnimacjaCtrlFactory::UpdateRegistry(BOOL bRegister)
- {
- // TODO: Verify that your control follows apartment-model threading rules.
- // Refer to MFC TechNote 64 for more information.
- // If your control does not conform to the apartment-model rules, then
- // you must modify the code below, changing the 6th parameter from
- // afxRegApartmentThreading to 0.
- if (bRegister)
- return AfxOleRegisterControlClass(
- AfxGetInstanceHandle(),
- m_clsid,
- m_lpszProgID,
- IDS_ACTIVEX,
- IDB_ACTIVEX,
- afxRegApartmentThreading,
- _dwActiveXOleMisc,
- _tlid,
- _wVerMajor,
- _wVerMinor);
- else
- return AfxOleUnregisterClass(m_clsid, m_lpszProgID);
- }
- // CSOAnimacjaCtrl::CSOAnimacjaCtrl - Constructor
- CSOAnimacjaCtrl::CSOAnimacjaCtrl()
- : m_pMyAnimateCtrl(NULL)
- , m_fileName(_T(""))
- {
- InitializeIIDs(&IID_DActiveX, &IID_DActiveXEvents);
- // TODO: Initialize your control's instance data here.
- }
- // CSOAnimacjaCtrl::~CSOAnimacjaCtrl - Destructor
- CSOAnimacjaCtrl::~CSOAnimacjaCtrl()
- {
- // TODO: Cleanup your control's instance data here.
- m_pMyAnimateCtrl->DestroyWindow();
- delete m_pMyAnimateCtrl;
- }
- // CSOAnimacjaCtrl::OnDraw - Drawing function
- void CSOAnimacjaCtrl::OnDraw(
- CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
- {
- if (!pdc)
- return;
- // TODO: Replace the following code with your own drawing code.
- pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
- pdc->Ellipse(rcBounds);
- }
- // CSOAnimacjaCtrl::DoPropExchange - Persistence support
- void CSOAnimacjaCtrl::DoPropExchange(CPropExchange* pPX)
- {
- ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
- COleControl::DoPropExchange(pPX);
- // TODO: Call PX_ functions for each persistent custom property.
- }
- // CSOAnimacjaCtrl::OnResetState - Reset control to default state
- void CSOAnimacjaCtrl::OnResetState()
- {
- COleControl::OnResetState(); // Resets defaults found in DoPropExchange
- // TODO: Reset any other control state here.
- }
- // CSOAnimacjaCtrl::AboutBox - Display an "About" box to the user
- void CSOAnimacjaCtrl::AboutBox()
- {
- CDialog dlgAbout(IDD_ABOUTBOX_ACTIVEX);
- dlgAbout.DoModal();
- }
- // CSOAnimacjaCtrl message handlers
- int CSOAnimacjaCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- // TODO: Add your specialized creation code here
- m_pMyAnimateCtrl = new CAnimateCtrl;
- CRect wndSize;
- this->GetClientRect(wndSize);
- #define ID_SOANIMCTRL 1001
- UINT styles = WS_CHILD | ACS_TRANSPARENT | ACS_AUTOPLAY | ACS_CENTER;
- m_pMyAnimateCtrl->Create(styles, wndSize, this, ID_SOANIMCTRL);
- m_pMyAnimateCtrl->ShowWindow(SW_SHOW);
- m_pMyAnimateCtrl->Open("C:\\Avi\\kula.avi");
- return 0;
- }
- void CSOAnimacjaCtrl::Uruchom(void)
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState());
- // TODO: Add your dispatch handler code here
- m_pMyAnimateCtrl->Play(0, -1, -1);
- }
- void CSOAnimacjaCtrl::Zatrzymaj(void)
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState());
- // TODO: Add your dispatch handler code here
- m_pMyAnimateCtrl->Stop();
- }
- BSTR CSOAnimacjaCtrl::GetFileName(void)
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState());
- CString strResult;
- // TODO: Add your dispatch handler code here
- return strResult.AllocSysString();
- }
- void CSOAnimacjaCtrl::SetFileName(LPCTSTR newVal)
- {
- AFX_MANAGE_STATE(AfxGetStaticModuleState());
- // TODO: Add your property handler code here
- m_pMyAnimateCtrl->Open(newVal);
- SetModifiedFlag();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement