Initial commit: ROW Client source code

Game client codebase including:
- CharacterActionControl: Character and creature management
- GlobalScript: Network, items, skills, quests, utilities
- RYLClient: Main client application with GUI and event handlers
- Engine: 3D rendering engine (RYLGL)
- MemoryManager: Custom memory allocation
- Library: Third-party dependencies (DirectX, boost, etc.)
- Tools: Development utilities

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-29 16:24:34 +09:00
commit e067522598
5135 changed files with 1745744 additions and 0 deletions

View File

@@ -0,0 +1,81 @@
//------------------------------------------------------------------------------
// File: PlayDMO.cpp
//
// Desc: DirectShow sample code - main header for PlayDMO application
//
// Copyright (c) 2000-2001 Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
#include "stdafx.h"
#include "PlayDMO.h"
#include "PlayDMODlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPlayDMOApp
BEGIN_MESSAGE_MAP(CPlayDMOApp, CWinApp)
//{{AFX_MSG_MAP(CPlayDMOApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPlayDMOApp construction
CPlayDMOApp::CPlayDMOApp()
{
// TODO: add construction code here,
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CPlayDMOApp object
CPlayDMOApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CPlayDMOApp initialization
BOOL CPlayDMOApp::InitInstance()
{
// Standard initialization
// If you are not using these features and wish to reduce the size
// of your final executable, you should remove from the following
// the specific initialization routines you do not need.
#ifdef _AFXDLL
// In MFC 5.0, Enable3dControls and Enable3dControlsStatic are obsolete because
// their functionality is incorporated into Microsoft's 32-bit operating systems.
#if (_MSC_VER <= 1200)
Enable3dControls(); // Call this when using MFC in a shared DLL
#endif
#else
Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
CPlayDMODlg dlg;
m_pMainWnd = &dlg;
int nResponse = (int) dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
// Since the dialog has been closed, return FALSE so that we exit the
// application, rather than start the application's message pump.
return FALSE;
}

View File

@@ -0,0 +1,177 @@
# Microsoft Developer Studio Project File - Name="PlayDMO" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=PlayDMO - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "PlayDMO.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "PlayDMO.mak" CFG="PlayDMO - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "PlayDMO - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "PlayDMO - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "PlayDMO - Win32 Release"
# PROP BASE Use_MFC 6
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 6
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\common" /I "..\..\..\..\include" /I "..\..\baseclasses" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Yu"stdafx.h" /FD /c
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL" /d "WIN32"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /machine:I386
# ADD LINK32 dmoguids.lib msdmo.lib ..\..\BaseClasses\Release\strmbase.lib winmm.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libcmt.lib" /OPT:NOREF /OPT:ICF /stack:0x200000,0x200000
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "PlayDMO - Win32 Debug"
# PROP BASE Use_MFC 6
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 6
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\common" /I "..\..\..\..\include" /I "..\..\baseclasses" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR /Yu"stdafx.h" /FD /GZ /c
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL" /d "WIN32"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 dmoguids.lib msdmo.lib ..\..\BaseClasses\Debug\strmbasd.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcmtd.lib" /pdbtype:sept /stack:0x200000,0x200000
!ENDIF
# Begin Target
# Name "PlayDMO - Win32 Release"
# Name "PlayDMO - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\..\Common\dshowutil.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\mfcdmoutil.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\mfcutil.cpp
# End Source File
# Begin Source File
SOURCE=..\..\Common\namedguid.cpp
# End Source File
# Begin Source File
SOURCE=.\PlayDMO.cpp
# End Source File
# Begin Source File
SOURCE=.\PlayDMO.rc
# End Source File
# Begin Source File
SOURCE=.\PlayDMODlg.cpp
# End Source File
# Begin Source File
SOURCE=.\StdAfx.cpp
# ADD CPP /Yc"stdafx.h"
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\..\Common\dshowutil.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\mfcdmoutil.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\mfcutil.h
# End Source File
# Begin Source File
SOURCE=..\..\Common\namedguid.h
# End Source File
# Begin Source File
SOURCE=.\PlayDMO.h
# End Source File
# Begin Source File
SOURCE=.\PlayDMODlg.h
# End Source File
# Begin Source File
SOURCE=.\Resource.h
# End Source File
# Begin Source File
SOURCE=.\StdAfx.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=.\res\PlayDMO.ico
# End Source File
# Begin Source File
SOURCE=.\res\PlayDMO.rc2
# End Source File
# End Group
# End Target
# End Project

View File

@@ -0,0 +1,29 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "PlayDMO"=.\PlayDMO.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

View File

@@ -0,0 +1,54 @@
//------------------------------------------------------------------------------
// File: PlayDMO.h
//
// Desc: DirectShow sample code - main header file for PlayDMO
//
// Copyright (c) 2000-2001 Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
#if !defined(AFX_PLAYDMO_H__123E1806_4ECC_487E_884B_EBF648ADB914__INCLUDED_)
#define AFX_PLAYDMO_H__123E1806_4ECC_487E_884B_EBF648ADB914__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
#endif
#include "resource.h" // main symbols
/////////////////////////////////////////////////////////////////////////////
// CPlayDMOApp:
// See PlayDMO.cpp for the implementation of this class
//
class CPlayDMOApp : public CWinApp
{
public:
CPlayDMOApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CPlayDMOApp)
public:
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CPlayDMOApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_PLAYDMO_H__123E1806_4ECC_487E_884B_EBF648ADB914__INCLUDED_)

View File

@@ -0,0 +1,370 @@
# Microsoft Developer Studio Generated NMAKE File, Based on PlayDMO.dsp
!IF "$(CFG)" == ""
CFG=PlayDMO - Win32 Debug
!MESSAGE No configuration specified. Defaulting to PlayDMO - Win32 Debug.
!ENDIF
!IF "$(CFG)" != "PlayDMO - Win32 Release" && "$(CFG)" != "PlayDMO - Win32 Debug"
!MESSAGE Invalid configuration "$(CFG)" specified.
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "PlayDMO.mak" CFG="PlayDMO - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "PlayDMO - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "PlayDMO - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
!ERROR An invalid configuration is specified.
!ENDIF
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
!IF "$(CFG)" == "PlayDMO - Win32 Release"
OUTDIR=.\Release
INTDIR=.\Release
# Begin Custom Macros
OutDir=.\Release
# End Custom Macros
ALL : "$(OUTDIR)\PlayDMO.exe"
CLEAN :
-@erase "$(INTDIR)\dshowutil.obj"
-@erase "$(INTDIR)\mfcdmoutil.obj"
-@erase "$(INTDIR)\mfcutil.obj"
-@erase "$(INTDIR)\namedguid.obj"
-@erase "$(INTDIR)\PlayDMO.obj"
-@erase "$(INTDIR)\PlayDMO.pch"
-@erase "$(INTDIR)\PlayDMO.res"
-@erase "$(INTDIR)\PlayDMODlg.obj"
-@erase "$(INTDIR)\StdAfx.obj"
-@erase "$(INTDIR)\vc60.idb"
-@erase "$(OUTDIR)\PlayDMO.exe"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe
CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "..\..\common" /I "..\..\..\..\..\include" /I "..\..\baseclasses" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)\PlayDMO.pch" /Yu"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.c{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
MTL=midl.exe
MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
RSC=rc.exe
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\PlayDMO.res" /d "NDEBUG" /d "_AFXDLL"
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\PlayDMO.bsc"
BSC32_SBRS= \
LINK32=link.exe
LINK32_FLAGS=dmoguids.lib msdmo.lib ..\..\BaseClasses\Release\strmbase.lib winmm.lib /nologo /subsystem:windows /incremental:no /pdb:"$(OUTDIR)\PlayDMO.pdb" /machine:I386 /nodefaultlib:"libcmt.lib" /out:"$(OUTDIR)\PlayDMO.exe" /OPT:NOREF /OPT:ICF /stack:0x200000,0x200000
LINK32_OBJS= \
"$(INTDIR)\dshowutil.obj" \
"$(INTDIR)\mfcdmoutil.obj" \
"$(INTDIR)\mfcutil.obj" \
"$(INTDIR)\namedguid.obj" \
"$(INTDIR)\PlayDMO.obj" \
"$(INTDIR)\PlayDMODlg.obj" \
"$(INTDIR)\StdAfx.obj" \
"$(INTDIR)\PlayDMO.res"
"$(OUTDIR)\PlayDMO.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ELSEIF "$(CFG)" == "PlayDMO - Win32 Debug"
OUTDIR=.\Debug
INTDIR=.\Debug
# Begin Custom Macros
OutDir=.\Debug
# End Custom Macros
ALL : "$(OUTDIR)\PlayDMO.exe" "$(OUTDIR)\PlayDMO.bsc"
CLEAN :
-@erase "$(INTDIR)\dshowutil.obj"
-@erase "$(INTDIR)\dshowutil.sbr"
-@erase "$(INTDIR)\mfcdmoutil.obj"
-@erase "$(INTDIR)\mfcdmoutil.sbr"
-@erase "$(INTDIR)\mfcutil.obj"
-@erase "$(INTDIR)\mfcutil.sbr"
-@erase "$(INTDIR)\namedguid.obj"
-@erase "$(INTDIR)\namedguid.sbr"
-@erase "$(INTDIR)\PlayDMO.obj"
-@erase "$(INTDIR)\PlayDMO.pch"
-@erase "$(INTDIR)\PlayDMO.res"
-@erase "$(INTDIR)\PlayDMO.sbr"
-@erase "$(INTDIR)\PlayDMODlg.obj"
-@erase "$(INTDIR)\PlayDMODlg.sbr"
-@erase "$(INTDIR)\StdAfx.obj"
-@erase "$(INTDIR)\StdAfx.sbr"
-@erase "$(INTDIR)\vc60.idb"
-@erase "$(INTDIR)\vc60.pdb"
-@erase "$(OUTDIR)\PlayDMO.bsc"
-@erase "$(OUTDIR)\PlayDMO.exe"
-@erase "$(OUTDIR)\PlayDMO.ilk"
-@erase "$(OUTDIR)\PlayDMO.pdb"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe
CPP_PROJ=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\common" /I "..\..\..\..\..\include" /I "..\..\baseclasses" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\PlayDMO.pch" /Yu"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.c{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
MTL=midl.exe
MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
RSC=rc.exe
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\PlayDMO.res" /d "_DEBUG" /d "_AFXDLL"
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\PlayDMO.bsc"
BSC32_SBRS= \
"$(INTDIR)\dshowutil.sbr" \
"$(INTDIR)\mfcdmoutil.sbr" \
"$(INTDIR)\mfcutil.sbr" \
"$(INTDIR)\namedguid.sbr" \
"$(INTDIR)\PlayDMO.sbr" \
"$(INTDIR)\PlayDMODlg.sbr" \
"$(INTDIR)\StdAfx.sbr"
"$(OUTDIR)\PlayDMO.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
$(BSC32) @<<
$(BSC32_FLAGS) $(BSC32_SBRS)
<<
LINK32=link.exe
LINK32_FLAGS=dmoguids.lib msdmo.lib ..\..\BaseClasses\Debug\strmbasd.lib winmm.lib /nologo /subsystem:windows /incremental:yes /pdb:"$(OUTDIR)\PlayDMO.pdb" /debug /machine:I386 /nodefaultlib:"libcmtd.lib" /out:"$(OUTDIR)\PlayDMO.exe" /pdbtype:sept /stack:0x200000,0x200000
LINK32_OBJS= \
"$(INTDIR)\dshowutil.obj" \
"$(INTDIR)\mfcdmoutil.obj" \
"$(INTDIR)\mfcutil.obj" \
"$(INTDIR)\namedguid.obj" \
"$(INTDIR)\PlayDMO.obj" \
"$(INTDIR)\PlayDMODlg.obj" \
"$(INTDIR)\StdAfx.obj" \
"$(INTDIR)\PlayDMO.res"
"$(OUTDIR)\PlayDMO.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
!ENDIF
!IF "$(NO_EXTERNAL_DEPS)" != "1"
!IF EXISTS("PlayDMO.dep")
!INCLUDE "PlayDMO.dep"
!ELSE
!MESSAGE Warning: cannot find "PlayDMO.dep"
!ENDIF
!ENDIF
!IF "$(CFG)" == "PlayDMO - Win32 Release" || "$(CFG)" == "PlayDMO - Win32 Debug"
SOURCE=..\..\Common\dshowutil.cpp
!IF "$(CFG)" == "PlayDMO - Win32 Release"
"$(INTDIR)\dshowutil.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\PlayDMO.pch"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "PlayDMO - Win32 Debug"
"$(INTDIR)\dshowutil.obj" "$(INTDIR)\dshowutil.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\PlayDMO.pch"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE=..\..\Common\mfcdmoutil.cpp
!IF "$(CFG)" == "PlayDMO - Win32 Release"
"$(INTDIR)\mfcdmoutil.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\PlayDMO.pch"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "PlayDMO - Win32 Debug"
"$(INTDIR)\mfcdmoutil.obj" "$(INTDIR)\mfcdmoutil.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\PlayDMO.pch"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE=..\..\Common\mfcutil.cpp
!IF "$(CFG)" == "PlayDMO - Win32 Release"
"$(INTDIR)\mfcutil.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\PlayDMO.pch"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "PlayDMO - Win32 Debug"
"$(INTDIR)\mfcutil.obj" "$(INTDIR)\mfcutil.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\PlayDMO.pch"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE=..\..\Common\namedguid.cpp
!IF "$(CFG)" == "PlayDMO - Win32 Release"
"$(INTDIR)\namedguid.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\PlayDMO.pch"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "PlayDMO - Win32 Debug"
"$(INTDIR)\namedguid.obj" "$(INTDIR)\namedguid.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\PlayDMO.pch"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE=.\PlayDMO.cpp
!IF "$(CFG)" == "PlayDMO - Win32 Release"
"$(INTDIR)\PlayDMO.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\PlayDMO.pch"
!ELSEIF "$(CFG)" == "PlayDMO - Win32 Debug"
"$(INTDIR)\PlayDMO.obj" "$(INTDIR)\PlayDMO.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\PlayDMO.pch"
!ENDIF
SOURCE=.\PlayDMO.rc
"$(INTDIR)\PlayDMO.res" : $(SOURCE) "$(INTDIR)"
$(RSC) $(RSC_PROJ) $(SOURCE)
SOURCE=.\PlayDMODlg.cpp
!IF "$(CFG)" == "PlayDMO - Win32 Release"
"$(INTDIR)\PlayDMODlg.obj" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\PlayDMO.pch"
!ELSEIF "$(CFG)" == "PlayDMO - Win32 Debug"
"$(INTDIR)\PlayDMODlg.obj" "$(INTDIR)\PlayDMODlg.sbr" : $(SOURCE) "$(INTDIR)" "$(INTDIR)\PlayDMO.pch"
!ENDIF
SOURCE=.\StdAfx.cpp
!IF "$(CFG)" == "PlayDMO - Win32 Release"
CPP_SWITCHES=/nologo /MD /W3 /GX /O2 /I "..\..\common" /I "..\..\..\..\..\include" /I "..\..\baseclasses" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"$(INTDIR)\PlayDMO.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
"$(INTDIR)\StdAfx.obj" "$(INTDIR)\PlayDMO.pch" : $(SOURCE) "$(INTDIR)"
$(CPP) @<<
$(CPP_SWITCHES) $(SOURCE)
<<
!ELSEIF "$(CFG)" == "PlayDMO - Win32 Debug"
CPP_SWITCHES=/nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\common" /I "..\..\..\..\..\include" /I "..\..\baseclasses" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\PlayDMO.pch" /Yc"stdafx.h" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
"$(INTDIR)\StdAfx.obj" "$(INTDIR)\StdAfx.sbr" "$(INTDIR)\PlayDMO.pch" : $(SOURCE) "$(INTDIR)"
$(CPP) @<<
$(CPP_SWITCHES) $(SOURCE)
<<
!ENDIF
!ENDIF

View File

@@ -0,0 +1,248 @@
//Microsoft Developer Studio generated resource script.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE DISCARDABLE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE DISCARDABLE
BEGIN
"#include ""afxres.h""\r\n"
"\0"
END
3 TEXTINCLUDE DISCARDABLE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
"#ifdef _WIN32\r\n"
"LANGUAGE 9, 1\r\n"
"#pragma code_page(1252)\r\n"
"#endif //_WIN32\r\n"
"#include ""res\\PlayDMO.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
"#include ""afxres.rc"" // Standard components\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON DISCARDABLE "res\\PlayDMO.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 89
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About PlayDMO DirectShow Sample"
FONT 8, "MS Shell Dlg"
BEGIN
ICON IDR_MAINFRAME,IDC_STATIC,11,17,21,20
LTEXT "PlayDMO Version 8.1",IDC_STATIC,40,10,119,8,SS_NOPREFIX
LTEXT "Copyright (C) 2001 Microsoft Corporation",IDC_STATIC,40,
26,150,8
DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP
LTEXT "This sample demonstrates using audio DMOs to affect the audio portion of an audio/video file. You can select from any audio DMO installed in your system, including Echo, Flanger, Chorus, and Reverb.",
IDC_STATIC,40,42,176,40
END
IDD_PLAYDMO_DIALOG DIALOGEX 0, 0, 347, 205
STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION |
WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "PlayDMO DirectShow Sample"
FONT 8, "MS Shell Dlg"
BEGIN
EDITTEXT IDC_EDIT_FILENAME,10,52,173,14,ES_AUTOHSCROLL
LISTBOX IDC_LIST_AUDIO_DMOS,7,111,89,68,LBS_SORT |
LBS_MULTIPLESEL | LBS_NOINTEGRALHEIGHT | WS_VSCROLL |
WS_TABSTOP
PUSHBUTTON "&Apply",IDC_BUTTON_ADD_DMO,7,183,42,14
PUSHBUTTON "&Clear",IDC_BUTTON_CLEAR,54,183,42,14
LISTBOX IDC_LIST_FILTERS,101,111,106,43,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
CTEXT "Audio Effects DMOs",IDC_STATIC,7,103,89,8
CTEXT "Filters/DMOs In Graph",IDC_STATIC,107,103,89,8
GROUPBOX "Audio DMO Input",IDC_STATIC,211,107,129,53
GROUPBOX "Audio DMO Output",IDC_STATIC,211,162,129,35
LTEXT "Max Latency :",IDC_STATIC,218,148,82,8
LTEXT "0",IDC_STATIC_MAXLATENCY,306,148,30,8
LTEXT "Minimum buffer size:",IDC_STATIC,218,119,82,8
LTEXT "Buffer alignment (bytes):",IDC_STATIC,218,129,82,8
LTEXT "Maximum lookahead:",IDC_STATIC,218,139,82,8
LTEXT "0",IDC_STATIC_IN_MINBUFFERSIZE,306,119,30,8
LTEXT "0",IDC_STATIC_IN_ALIGNMENT,306,129,30,8
LTEXT "0",IDC_STATIC_IN_MAXLOOKAHEAD,306,139,30,8
LTEXT "Minimum buffer size:",IDC_STATIC,215,173,82,8
LTEXT "Buffer alignment (bytes):",IDC_STATIC,215,183,82,8
LTEXT "0",IDC_STATIC_OUT_MINBUFFERSIZE,306,173,30,8
LTEXT "0",IDC_STATIC_OUT_ALIGNMENT,306,183,30,8
CTEXT "Input Pins",IDC_STATIC,101,156,47,8
LISTBOX IDC_LIST_FILTER_INPUTS,101,166,50,31,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
CTEXT "Output Pins",IDC_STATIC,156,156,47,8
LISTBOX IDC_LIST_FILTER_OUTPUTS,156,166,51,31,LBS_SORT |
LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
DEFPUSHBUTTON "&Browse For Media...",IDC_BUTTON_FILE,10,35,78,14
CTEXT "Select a media file below, apply one or more audio effects DMOs, then click Play.",
IDC_STATIC,11,11,167,21
CONTROL "",IDC_SCREEN,"Static",SS_BLACKRECT,191,7,148,96
PUSHBUTTON "&Filter Properties",IDC_BUTTON_PROPPAGE,105,35,78,14,
WS_DISABLED
GROUPBOX "",IDC_STATIC,7,3,180,96
PUSHBUTTON "Pa&use",IDC_BUTTON_PAUSE,53,77,40,14
PUSHBUTTON "&Stop",IDC_BUTTON_STOP,96,77,40,14
PUSHBUTTON "&Play",IDC_BUTTON_PLAY,9,77,40,14
CTEXT "Ready",IDC_STATIC_STATUS,137,80,46,8
END
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 8,1,0,0
PRODUCTVERSION 8,1,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904B0"
BEGIN
VALUE "Comments", "DirectShow Sample\0"
VALUE "CompanyName", "Microsoft\0"
VALUE "FileDescription", "PlayDMO MFC Application\0"
VALUE "FileVersion", "8.10\0"
VALUE "InternalName", "PlayDMO\0"
VALUE "LegalCopyright", "Copyright (c) 2000-2001 Microsoft Corporation\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "PlayDMO.EXE\0"
VALUE "ProductName", "DirectX 8 SDK\0"
VALUE "ProductVersion", "8.1\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE
BEGIN
IDD_ABOUTBOX, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 228
TOPMARGIN, 7
BOTTOMMARGIN, 82
END
IDD_PLAYDMO_DIALOG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 340
TOPMARGIN, 7
BOTTOMMARGIN, 198
END
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
IDS_ABOUTBOX "&About PlayDMO..."
END
#endif // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
#include "res\PlayDMO.rc2" // non-Microsoft Visual C++ edited resources
#include "afxres.rc" // Standard components
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,150 @@
//------------------------------------------------------------------------------
// File: PlayDMODlg.h
//
// Desc: DirectShow sample code - main header for CPlayDMODlg
//
// Copyright (c) 1996-2001 Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
#if !defined(AFX_PLAYDMODLG_H__AD2B59C5_9A0D_438F_A912_5441F8FC8B79__INCLUDED_)
#define AFX_PLAYDMODLG_H__AD2B59C5_9A0D_438F_A912_5441F8FC8B79__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <dshow.h>
#include <streams.h>
#include <qedit.h>
#include <atlbase.h>
#include <dmo.h>
#include <dmodshow.h>
// Include utility headers
#include "mfcutil.h"
#include "mfcdmoutil.h"
#include "dshowutil.h"
// Constants
#define MAX_DMOS 10
/////////////////////////////////////////////////////////////////////////////
// CPlayDMODlg dialog
class CPlayDMODlg : public CDialog
{
// Construction
public:
CPlayDMODlg(CWnd* pParent = NULL); // standard constructor
HRESULT FillLists(void);
void ClearLists(void);
void SetDefaults(void);
void EnableButtons(BOOL bEnable);
HRESULT GetInterfaces(void);
void FreeInterfaces(void);
HRESULT HandleGraphEvent(void);
HRESULT SetInputPinProperties(IAMAudioInputMixer *pPinMixer);
HRESULT SetAudioProperties(void);
HRESULT AddDMOsToGraph(void);
HRESULT RemoveDMOsFromGraph(void);
void ClearAllocatedLists(void);
void Say(TCHAR *szMsg);
void ShowInputBufferInfo(IMediaObject *pDMO, int nSel);
void ShowOutputBufferInfo(IMediaObject *pDMO, int nSel);
HRESULT PrepareMedia(LPTSTR lpszMovie);
HRESULT InitDirectShow(void);
HRESULT FreeDirectShow(void);
void ResetDirectShow(void);
void CenterVideo(void);
HRESULT RunMedia(void);
HRESULT StopMedia(void);
HRESULT PauseMedia(void);
HRESULT OnSelectFile();
HRESULT ConnectDMOsToRenderer() ;
LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
// Dialog Data
//{{AFX_DATA(CPlayDMODlg)
enum { IDD = IDD_PLAYDMO_DIALOG };
CButton m_btnProperties;
CStatic m_strStatus;
CStatic m_nOutBufferSize;
CStatic m_nOutAlignment;
CStatic m_nMaxLatency;
CStatic m_nInBufferSize;
CStatic m_nInLookahead;
CStatic m_nInAlignment;
CListBox m_ListFilters;
CListBox m_ListFilterOutputs;
CListBox m_ListFilterInputs;
CListBox m_ListAudioDMO;
CEdit m_StrFilename;
CButton m_btnStop;
CButton m_btnPlay;
CButton m_btnPause;
CStatic m_Screen;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CPlayDMODlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
DWORD m_dwRegister; // Used by debug ROT functions
unsigned long m_ulDataBuffered;
int m_nDMOCount;
int m_nLoadedDMOs;
// DirectShow interfaces
IGraphBuilder *m_pGB;
IMediaSeeking *m_pMS;
IMediaControl *m_pMC;
IMediaEventEx *m_pME;
IVideoWindow *m_pVW;
// List of DMO interfaces
IBaseFilter *m_pDMOList[MAX_DMOS];
BOOL m_bAudioOnly;
FILTER_STATE g_psCurrent;
// Generated message map functions
//{{AFX_MSG(CPlayDMODlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnClose();
afx_msg void OnDestroy();
afx_msg void OnButtonPlay();
afx_msg void OnButtonPause();
afx_msg void OnButtonStop();
afx_msg void OnButtonFile();
afx_msg void OnSelchangeListFilters();
afx_msg void OnButtonAddDmo();
afx_msg void OnButtonClear();
afx_msg void OnButtonProppage();
afx_msg void OnDblclkListFilters();
afx_msg BOOL OnEraseBkgnd(CDC *);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_PLAYDMODLG_H__AD2B59C5_9A0D_438F_A912_5441F8FC8B79__INCLUDED_)

View File

@@ -0,0 +1,8 @@
// stdafx.cpp : source file that includes just the standard includes
// PlayDMO.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"

View File

@@ -0,0 +1,26 @@
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__85385154_D204_4E5B_BDCF_385AEE13E244__INCLUDED_)
#define AFX_STDAFX_H__85385154_D204_4E5B_BDCF_385AEE13E244__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions
#include <afxdtctl.h> // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__85385154_D204_4E5B_BDCF_385AEE13E244__INCLUDED_)

View File

@@ -0,0 +1,20 @@
DirectShow Sample -- PlayDMO
----------------------------
PlayDMO allows you to open any media file, view its video component (if present), and
apply any number of DMO audio effects to its audio component.
Select a media file by typing its name in the edit box or by clicking the
Browse For Media button. Then select one or more audio effects DMOs to apply to
the audio. Click Apply to immediately rebuild the filter graph with the selected DMOs.
You may also click Play instead, and any selected DMOs will be added to the newly built
filter graph.
Once you have started playing the media file, you can click on a filter or DMO in the
Filters/DMO listbox and edit its properties by clicking the Filter Properties button.
The corresponding filter properties dialog will be displayed. If you click on a DMO in
the Filters/DMO list, you'll also see extra DMO-specific information provided by the IMediaObject interface.
Note: Since the filter graph is rebuilt when you click Play, don't set Filter Properties
until the graph is already playing. Otherwise, you will lose your settings when you
start playing the media file.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,13 @@
//
// PLAYDMO.RC2 - resources Microsoft Visual C++ does not edit directly
//
#ifdef APSTUDIO_INVOKED
#error this file is not editable by Microsoft Visual C++
#endif //APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
// Add manually edited resources here...
/////////////////////////////////////////////////////////////////////////////

View File

@@ -0,0 +1,43 @@
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by PlayDMO.rc
//
#define IDM_ABOUTBOX 0x0010
#define IDD_ABOUTBOX 100
#define IDS_ABOUTBOX 101
#define IDD_PLAYDMO_DIALOG 102
#define IDR_MAINFRAME 128
#define IDC_SCREEN 1000
#define IDC_BUTTON_PLAY 1001
#define IDC_BUTTON_PAUSE 1002
#define IDC_BUTTON_STOP 1003
#define IDC_BUTTON_RECORD 1004
#define IDC_BUTTON_ADD_DMO 1005
#define IDC_BUTTON_CLEAR 1006
#define IDC_BUTTON_FILE 1007
#define IDC_EDIT_FILENAME 1008
#define IDC_BUTTON_PROPPAGE 1009
#define IDC_LIST_OUTPUT_PINS 1010
#define IDC_LIST_INPUT_PINS 1011
#define IDC_LIST_AUDIO_DMOS 1012
#define IDC_LIST_FILTERS 1013
#define IDC_STATIC_MAXLATENCY 1014
#define IDC_STATIC_IN_MINBUFFERSIZE 1015
#define IDC_STATIC_IN_ALIGNMENT 1016
#define IDC_STATIC_IN_MAXLOOKAHEAD 1017
#define IDC_STATIC_OUT_MINBUFFERSIZE 1018
#define IDC_STATIC_OUT_ALIGNMENT 1019
#define IDC_LIST_FILTER_INPUTS 1020
#define IDC_LIST_FILTER_OUTPUTS 1021
#define IDC_STATIC_STATUS 1022
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 129
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif