⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ip_rootprop.cpp

📁 Multimedia Programming
💻 CPP
字号:
#include <windows.h>
#include <windowsx.h>
#include <streams.h>
#include <commctrl.h>
#include <olectl.h>
#include <memory.h>
#include <stdlib.h>
#include <stdio.h>
#include <tchar.h>
#include "resource.h"
#include "i[!output PROJECT_NAME].h"
#include "[!output PROJECT_NAME].h"
#include "[!output PROJECT_NAME]Prop.h"

//
// CreateInstance
//
// Used by the DirectShow base classes to create instances
//
CUnknown *C[!output PROJECT_NAME]Properties::CreateInstance(LPUNKNOWN lpunk, HRESULT *phr)
{
    CUnknown *punk = new C[!output PROJECT_NAME]Properties(lpunk, phr);
    if (punk == NULL) {
	*phr = E_OUTOFMEMORY;
    }
    return punk;

}

//
// Constructor
//
C[!output PROJECT_NAME]Properties::C[!output PROJECT_NAME]Properties(LPUNKNOWN pUnk, HRESULT *phr) :
    CBasePropertyPage(NAME("Image Resize Property Page"),
                      pUnk,IDD_PROPERTIES,IDS_TITLE),
    m_pI[!output PROJECT_NAME](NULL),
    m_bIsInitialized(FALSE)
{
    ASSERT(phr);
}

//
// OnReceiveMessage
//
// Handles the messages for our property window
//
BOOL C[!output PROJECT_NAME]Properties::OnReceiveMessage(HWND hwnd,
                                          UINT uMsg,
                                          WPARAM wParam,
                                          LPARAM lParam)
{
    switch (uMsg)
    {
        case WM_COMMAND:
        {
            if (m_bIsInitialized)
            {
                m_bDirty = TRUE;
                if (m_pPageSite)
                {
                    m_pPageSite->OnStatusChange(PROPPAGESTATUS_DIRTY);
                }
            }
            return (LRESULT) 1;
        }

    }
    return CBasePropertyPage::OnReceiveMessage(hwnd,uMsg,wParam,lParam);

}

//
// OnConnect
//
// Called when we connect to a transform filter
//
HRESULT C[!output PROJECT_NAME]Properties::OnConnect(IUnknown *pUnknown)
{
    ASSERT(m_pI[!output PROJECT_NAME] == NULL);

    HRESULT hr = pUnknown->QueryInterface(IID_I[!output PROJECT_NAME], (void **) &m_pI[!output PROJECT_NAME]);
    if (FAILED(hr)) {
        return E_NOINTERFACE;
    }

    ASSERT(m_pI[!output PROJECT_NAME]);

    m_pI[!output PROJECT_NAME]->get_[!output PROJECT_NAME](&[!output PROJECT_NAME]Parameters);
    m_bIsInitialized = FALSE ;
    return NOERROR;
}

//
// OnDisconnect
//
// Likewise called when we disconnect from a filter
//
HRESULT C[!output PROJECT_NAME]Properties::OnDisconnect()
{
    if (m_pI[!output PROJECT_NAME] == NULL) {
        return E_UNEXPECTED;
    }

    m_pI[!output PROJECT_NAME]->Release();
    m_pI[!output PROJECT_NAME] = NULL;
    return NOERROR;
}

//
// OnActivate
//
// We are being activated
//
HRESULT C[!output PROJECT_NAME]Properties::OnActivate()
{
    TCHAR   sz[60];

    _stprintf(sz, TEXT("%d"), [!output PROJECT_NAME]Parameters.param1);
    Edit_SetText(GetDlgItem(m_Dlg, IDC_PARAM1), sz);
    _stprintf(sz, TEXT("%d"), [!output PROJECT_NAME]Parameters.param2);
    Edit_SetText(GetDlgItem(m_Dlg, IDC_PARAM2), sz);

	m_bIsInitialized = TRUE;

	return NOERROR;
}

//
// OnDeactivate
//
// We are being deactivated
//
HRESULT C[!output PROJECT_NAME]Properties::OnDeactivate(void)
{
    ASSERT(m_pI[!output PROJECT_NAME]);
    m_bIsInitialized = FALSE;
    GetControlValues();
    return NOERROR;
}

//
// OnApplyChanges
//
// Apply any changes so far made
//
HRESULT C[!output PROJECT_NAME]Properties::OnApplyChanges()
{
    GetControlValues();
    m_pI[!output PROJECT_NAME]->put_[!output PROJECT_NAME]([!output PROJECT_NAME]Parameters);

    return NOERROR;
}

//
// GetControlValues
//
void C[!output PROJECT_NAME]Properties::GetControlValues()
{
    TCHAR sz[STR_MAX_LENGTH];

    Edit_GetText(GetDlgItem(m_Dlg, IDC_PARAM1), sz, STR_MAX_LENGTH);
	[!output PROJECT_NAME]Parameters.param1 = atoi(sz);

    Edit_GetText(GetDlgItem(m_Dlg, IDC_PARAM2), sz, STR_MAX_LENGTH);
	[!output PROJECT_NAME]Parameters.param2 = atoi(sz);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -