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,260 @@
//------------------------------------------------------------------------------
// File: CompositeControl.cpp
//
// Desc: Implementation of the CCompositeControl
// for the Windows XP MSVidCtl C++ sample
//
// Copyright (c) 2001 Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
#include "stdafx.h"
#include "CPPVideoControl.h"
#include "CompositeControl.h"
#include <atlbase.h>
#include <msvidctl.h>
#include <tuner.h>
#include <segment.h>
#define DEFAULT_CHANNEL 46
#define STR_VIEW_FAILURE TEXT("Failed IMSVidCtl::View. You may not have ") \
TEXT("properly installed your hardware. Your ATSC tuner card, ") \
TEXT("MPEG-2 decoder, or video card may be incompatible with ") \
TEXT("the MicrosoftTV Technologies architecture.")
/////////////////////////////////////////////////////////////////////////////
// CCompositeControl
LRESULT CCompositeControl::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
HRESULT hr = S_OK;
ITuningSpace * pTuningSpace = NULL;
IEnumTuningSpaces * pEnumTuningSpaces = NULL;
ITuningSpace ** pTuningSpaceArray = NULL;
ULONG ulNumFetched = 0;
long lCount = 0;
ULONG i = 0;
CComBSTR bstrATSC = L"ATSC";
CComBSTR bstrTemp = L"";
// Get window handle of channel label (for later update)
m_hwndChannelID = GetDlgItem(IDC_CHANNELID);
// Get the tuning space collection
hr = CoCreateInstance(CLSID_SystemTuningSpaces, NULL,
CLSCTX_INPROC_SERVER, IID_ITuningSpaceContainer,
reinterpret_cast<void**>(&m_pTuningSpaceContainer));
if (FAILED(hr))
{
MessageBox(TEXT("Failed to create system tuning space."), TEXT("Error"), MB_OK);
return hr;
}
// Get the video control object
hr = GetDlgControl(IDC_VIDEOCONTROL1,IID_IMSVidCtl, reinterpret_cast<void **>(&m_pMSVidCtl));
if(m_pMSVidCtl == NULL)
{
MessageBox(TEXT("Failed to get Video Control on main dialog!"),TEXT("Error"),MB_OK);
return hr;
}
// Find the ATSC tuning space in the collection
hr = m_pTuningSpaceContainer->get_EnumTuningSpaces(&pEnumTuningSpaces);
if (FAILED(hr))
{
MessageBox(TEXT("Failed to get tuning space enumerator."), TEXT("Error"), MB_OK);
return hr;
}
hr = m_pTuningSpaceContainer->get_Count(&lCount);
if (FAILED(hr))
{
MessageBox(TEXT("Failed to enumerate tuning spaces."), TEXT("Error"), MB_OK);
return hr;
}
// Read tuning space info into allocated array
pTuningSpaceArray = new ITuningSpace*[lCount];
hr = pEnumTuningSpaces->Next(lCount, pTuningSpaceArray, &ulNumFetched);
if (FAILED(hr))
{
MessageBox(TEXT("Failed to read tuning spaces."), TEXT("Error"), MB_OK);
return hr;
}
// Find the ATSC tuning space
for (i = 0;i < ulNumFetched; i++)
{
hr = pTuningSpaceArray[i]->get_UniqueName(&bstrTemp);
if (FAILED(hr))
{
MessageBox(TEXT("Failed to read tuning space unique name."), TEXT("Error"), MB_OK);
return hr;
}
// Is this the ATSC tuning space?
if (bstrTemp == bstrATSC)
{
hr = pTuningSpaceArray[i]->Clone(&pTuningSpace);
break;
}
}
if (pTuningSpace == NULL)
{
MessageBox(TEXT("Could not find ATSC tuning space."), TEXT("Error"), MB_OK);
return hr;
}
// QI for IATSCTuningSpace
hr = pTuningSpace->QueryInterface(IID_IATSCTuningSpace, reinterpret_cast<void**>(&m_pATSCTuningSpace));
if (FAILED(hr))
{
MessageBox(TEXT("Failed to QI for IATSCTuningSpace."), TEXT("Error"), MB_OK);
return hr;
}
// Create ATSC Locator
hr = CoCreateInstance(CLSID_ATSCLocator, NULL,
CLSCTX_INPROC_SERVER, IID_IATSCLocator,
reinterpret_cast<void**>(&m_pATSCLocator));
if (FAILED(hr))
{
MessageBox(TEXT("Failed to create ATSC locator."), TEXT("Error"), MB_OK);
return hr;
}
hr = SetChannel(DEFAULT_CHANNEL);
if (FAILED(hr))
{
// SetChannel will give a message box indicating the error
return hr;
}
// Start viewing digital TV
hr = m_pMSVidCtl->Run();
if (FAILED(hr))
{
MessageBox(TEXT("Failed IMSVidCtl::Run. You may not have properly installed your hardware. Your ATSC tuner card, MPEG-2 decoder, or video card may be incompatible with the MicrosoftTV Technologies architecture."), TEXT("Error"), MB_OK);
return hr;
}
SAFE_RELEASE(pTuningSpace);
SAFE_RELEASE(pEnumTuningSpaces);
delete pTuningSpaceArray;
return hr;
};
LRESULT CCompositeControl::OnClickedChanneldown(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
HRESULT hr = S_OK;
long lPhysicalChannel = 0;
// Get the current physical channel and decrement it
hr =m_pATSCLocator->get_PhysicalChannel(&lPhysicalChannel);
if (FAILED(hr))
{
MessageBox(TEXT("Failed to read physical channel."), TEXT("Error"), MB_OK);
return hr;
}
lPhysicalChannel--;
hr = SetChannel(lPhysicalChannel);
return hr;
};
LRESULT CCompositeControl::OnClickedChannelup(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
HRESULT hr = S_OK;
long lPhysicalChannel = 0;
// Get the current physical channel and increment it
hr =m_pATSCLocator->get_PhysicalChannel(&lPhysicalChannel);
if (FAILED(hr))
{
MessageBox(TEXT("Failed to read physical channel."), TEXT("Error"), MB_OK);
return hr;
}
lPhysicalChannel++;
hr = SetChannel(lPhysicalChannel);
return hr;
};
HRESULT CCompositeControl::SetChannel(long lPhysicalChannel)
{
HRESULT hr=S_OK;
IATSCChannelTuneRequest * pATSCTuneRequest = NULL;
ITuneRequest * pTuneRequest = NULL;
// Set the Physical Channel
hr =m_pATSCLocator->put_PhysicalChannel(lPhysicalChannel);
if (FAILED(hr))
{
MessageBox(TEXT("Failed to set physical channel."), TEXT("Error"), MB_OK);
return hr;
}
// Create an ATSC tune request
hr = m_pATSCTuningSpace->CreateTuneRequest(&pTuneRequest);
if (FAILED(hr))
{
MessageBox(TEXT("Failed to create tune request."), TEXT("Error"), MB_OK);
return hr;
}
hr = pTuneRequest->QueryInterface(IID_IATSCChannelTuneRequest, reinterpret_cast<void**>(&pATSCTuneRequest));
if (FAILED(hr))
{
MessageBox(TEXT("Failed to query for IATSCChannelTuneRequest."), TEXT("Error"), MB_OK);
return hr;
}
// Set the Channel and MinorChannel property on the tune request to -1
// These properties will get set by the network provider once tuned to a ATSC channel
hr = pATSCTuneRequest->put_Channel(-1);
if (FAILED(hr))
{
MessageBox(TEXT("Failed to put channel property."), TEXT("Error"), MB_OK);
return hr;
}
hr = pATSCTuneRequest->put_MinorChannel(-1);
if (FAILED(hr))
{
MessageBox(TEXT("Failed to put minor channel property."), TEXT("Error"), MB_OK);
return hr;
}
hr = pATSCTuneRequest->put_Locator(m_pATSCLocator);
if (FAILED(hr))
{
MessageBox(TEXT("Failed to put locator."), TEXT("Error"), MB_OK);
return hr;
}
// Now that the tune request is configured, pass it to the video control
CComVariant var = pATSCTuneRequest;
hr = m_pMSVidCtl->View(&var);
if (FAILED(hr))
{
MessageBox(STR_VIEW_FAILURE, TEXT("Error"), MB_OK);
return hr;
}
ShowChannelNumber(lPhysicalChannel);
// Release interfaces
pATSCTuneRequest->Release();
pTuneRequest->Release();
return hr;
}
void CCompositeControl::ShowChannelNumber(long lChannel)
{
TCHAR szChannelNumber[8];
wsprintf(szChannelNumber, TEXT("%d\0"), lChannel);
SetDlgItemText(IDC_CHANNELID, szChannelNumber);
}