forked from LosaDev/ls-2019-source
LosaDev source snapshot 2019
This commit is contained in:
commit
c198676e97
20588 files changed
+8812878
No files matched your search
@@ -0,0 +1,20 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SVNPoster", "SVNPoster\SVNPoster.vcxproj", "{A02F1B9A-CDE6-4E57-B140-E12B90830F1B}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{A02F1B9A-CDE6-4E57-B140-E12B90830F1B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A02F1B9A-CDE6-4E57-B140-E12B90830F1B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A02F1B9A-CDE6-4E57-B140-E12B90830F1B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A02F1B9A-CDE6-4E57-B140-E12B90830F1B}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -0,0 +1,100 @@
|
||||
================================================================================
|
||||
MFC 라이브러리 : SVNPoster 프로젝트 개요
|
||||
================================================================================
|
||||
|
||||
응용 프로그램 마법사에서 이 SVNPoster 응용 프로그램을
|
||||
만들었습니다. 이 응용 프로그램은 MFC의 기본 사용법을 보여 줄 뿐만 아니라 응용
|
||||
프로그램작성을 위한 기본 구조를 제공합니다.
|
||||
|
||||
이 파일에는 SVNPoster 응용 프로그램을 구성하는 각 파일에 대한
|
||||
요약 설명이 포함되어 있습니다.
|
||||
|
||||
SVNPoster.vcxproj
|
||||
응용 프로그램 마법사를 사용하여 생성된 VC++ 프로젝트의 주 프로젝트 파일입니다.
|
||||
파일을 생성한 Visual C++ 버전에 대한 정보와 응용 프로그램 마법사를 사용하여 선택한
|
||||
플랫폼, 구성 및 프로젝트 기능에 대한 정보가 들어 있습니다.
|
||||
|
||||
SVNPoster.vcxproj.filters
|
||||
응용 프로그램 마법사를 사용하여 생성된 VC++ 프로젝트의 필터 파일입니다.
|
||||
이 파일에는 프로젝트의 파일과 필터 간의 연결 정보가 들어 있습니다. 이러한
|
||||
연결은 특정 노드에서 유사한 확장명으로 그룹화된 파일을 표시하기 위해
|
||||
IDE에서 사용됩니다. 예를 들어 ".cpp" 파일은 "소스 파일" 필터와 연결되어
|
||||
있습니다.
|
||||
|
||||
|
||||
SVNPoster.h
|
||||
응용 프로그램의 기본 헤더 파일입니다. 여기에는 다른 프로젝트 관련
|
||||
헤더(Resource.h 포함)가 들어 있고 CSVNPosterApp 응용 프로그램
|
||||
클래스를 선언합니다.
|
||||
|
||||
SVNPoster.cpp
|
||||
응용 프로그램 클래스 CSVNPosterApp이(가) 들어 있는 기본 응용 프로그램
|
||||
소스 파일입니다.
|
||||
|
||||
SVNPoster.rc
|
||||
프로그램에서 사용하는 모든 Microsoft Windows 리소스의 목록입니다.
|
||||
여기에는 RES 하위 디렉터리에 저장된 아이콘, 비트맵 및 커서가
|
||||
포함됩니다. 이 파일은 Microsoft Visual C++에서 직접
|
||||
편집할 수 있습니다. 프로젝트 리소스는 1042에 있습니다.
|
||||
|
||||
res\SVNPoster.ico
|
||||
응용 프로그램의 아이콘으로 사용되는 아이콘 파일입니다. 이 아이콘은
|
||||
주 리소스 파일인 SVNPoster.rc에 의해 포함됩니다.
|
||||
|
||||
res\SVNPoster.rc2
|
||||
이 파일에는 Microsoft Visual C++ 이외의 다른 도구에서 편집한 리소스가
|
||||
들어 있습니다. 리소스 편집기로 편집할 수 없는 모든 리소스는
|
||||
이 파일에 넣어야 합니다.
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
응용 프로그램 마법사에서 하나의 대화 상자 클래스가 만들어집니다.
|
||||
|
||||
SVNPosterDlg.h, SVNPosterDlg.cpp - 대화 상자
|
||||
이 파일에는 CSVNPosterDlg 클래스가 들어 있습니다. 이 클래스는
|
||||
응용 프로그램의 주 대화 상자 동작을 정의합니다. 대화 상자의 템플릿은
|
||||
Microsoft Visual C++에서 편집할 수 있는 SVNPoster.rc에 있습니다.
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
기타 기능:
|
||||
|
||||
ActiveX 컨트롤
|
||||
응용 프로그램에서 ActiveX 컨트롤을 사용할 수 있도록 지원합니다.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
기타 표준 파일:
|
||||
|
||||
StdAfx.h, StdAfx.cpp
|
||||
이 파일은 미리 컴파일된 헤더 파일(PCH)인 SVNPoster.pch와
|
||||
미리 컴파일된 형식 파일인 StdAfx.obj를 빌드하는 데 사용됩니다.
|
||||
|
||||
Resource.h
|
||||
새 리소스 ID를 정의하는 표준 헤더 파일입니다.
|
||||
Microsoft Visual C++에서 이 파일을 읽고 업데이트합니다.
|
||||
|
||||
SVNPoster.manifest
|
||||
응용 프로그램 매니페스트 파일은 Windows XP에서 특정 버전의 Side-by-Side
|
||||
어셈블리에 대한 응용 프로그램 종속성을 설명하는 데 사용됩니다. 로더는 이 정보를
|
||||
사용하여 어셈블리 캐시에서 적절한 어셈블리를 로드하거나 응용 프로그램에서 전용
|
||||
어셈블리를 로드합니다. 응용 프로그램 매니페스트는 응용 프로그램 실행 파일과 같은
|
||||
폴더에 설치된 외부 .manifest 파일로 재배포를 위해 포함되거나 리소스의 형태로
|
||||
실행 파일에 포함될 수 있습니다.
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
기타 참고:
|
||||
|
||||
응용 프로그램 마법사는 "TODO:"를 사용하여 추가하거나 사용자 지정해야 하는
|
||||
소스 코드 부분을 나타냅니다.
|
||||
|
||||
응용 프로그램이 공유 DLL에서 MFC를 사용하는 경우 해당 MFC DLL을
|
||||
재배포해야 합니다. 그리고 응용 프로그램이 운영 체제의 로캘과
|
||||
다른 언어를 사용하는 경우 해당 지역화된 리소스인 MFC100XXX.DLL을
|
||||
재배포해야 합니다. 이 두가지 항목에 대한 자세한 내용은
|
||||
MSDN 설명서의 Visual C++ 응용 프로그램 재배포 항목을
|
||||
참조하십시오.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
@@ -0,0 +1,170 @@
|
||||
#include "StdAfx.h"
|
||||
#include "SVNParser.h"
|
||||
|
||||
|
||||
CSVNParser::CSVNParser(void)
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
CSVNParser::~CSVNParser(void)
|
||||
{
|
||||
Destroy();
|
||||
}
|
||||
|
||||
void CSVNParser::Init()
|
||||
{
|
||||
}
|
||||
|
||||
void CSVNParser::Destroy()
|
||||
{
|
||||
}
|
||||
|
||||
BOOL CSVNParser::Load(CString& file)
|
||||
{
|
||||
m_file = file;
|
||||
|
||||
CStdioFile sf;
|
||||
if(sf.Open(file, CFile::modeRead))
|
||||
{
|
||||
Reset();
|
||||
|
||||
if(sf.GetLength() == 0)
|
||||
{
|
||||
sf.Close();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
CString temp;
|
||||
while(sf.ReadString(temp))
|
||||
{
|
||||
temp.TrimLeft();
|
||||
temp.TrimRight();
|
||||
|
||||
m_books.Add(temp);
|
||||
TRACE(_T("%s\n"), temp);
|
||||
}
|
||||
|
||||
sf.Close();
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void CSVNParser::Parse(CString& dist, int& revision, CString& output)
|
||||
{
|
||||
BOOL afterFile = FALSE;
|
||||
|
||||
int count = m_books.GetCount();
|
||||
for(int i = 0 ; i < count ; i++)
|
||||
{
|
||||
CString temp = m_books[i];
|
||||
|
||||
CString symbol = temp.Mid(0, 1);
|
||||
if(symbol == _T("r"))
|
||||
{
|
||||
LoadTitle( temp );
|
||||
}
|
||||
else if(symbol == _T("M"))
|
||||
{
|
||||
afterFile = TRUE;
|
||||
LoadFile( temp );
|
||||
}
|
||||
else if(symbol == _T("A"))
|
||||
{
|
||||
afterFile = TRUE;
|
||||
LoadFile( temp );
|
||||
}
|
||||
else if(symbol == _T("D"))
|
||||
{
|
||||
afterFile = TRUE;
|
||||
LoadFile( temp );
|
||||
}
|
||||
else
|
||||
{
|
||||
if(afterFile && (temp != _T("------------------------------------------------------------------------")))
|
||||
{
|
||||
LoadExplain( temp );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GetDistZone(dist, output);
|
||||
GetRivision(revision, output);
|
||||
GetExplain(output);
|
||||
GetFiles(output);
|
||||
GetSpecific(output);
|
||||
}
|
||||
|
||||
void CSVNParser::Reset()
|
||||
{
|
||||
m_books.RemoveAll();
|
||||
m_files.Empty();
|
||||
m_explains.Empty();
|
||||
}
|
||||
|
||||
void CSVNParser::LoadTitle(CString& text)
|
||||
{
|
||||
// r4709 | HwangJunGi | 2013-03-19 12:00:03 +0900 (2013-03-19, 화) | 5 개의 행
|
||||
TRACE(_T("Title : %s\n"), text);
|
||||
m_title = text;
|
||||
|
||||
int pos = 0;
|
||||
m_revision = m_title.Tokenize(_T("|"), pos);
|
||||
m_author = m_title.Tokenize(_T("|"), pos);
|
||||
m_date = m_title.Tokenize(_T("|"), pos);
|
||||
m_effected = m_title.Tokenize(_T("|"), pos);
|
||||
}
|
||||
|
||||
void CSVNParser::LoadFile(CString& text)
|
||||
{
|
||||
if(text.IsEmpty()) return;
|
||||
|
||||
CString temp;
|
||||
temp.Format(_T("%s\r\n"), text);
|
||||
m_files = m_files + temp;
|
||||
}
|
||||
|
||||
void CSVNParser::LoadExplain(CString& text)
|
||||
{
|
||||
if(text.IsEmpty()) return;
|
||||
|
||||
CString temp;
|
||||
temp.Format(_T("%s\r\n"), text);
|
||||
m_explains = m_explains + temp;
|
||||
}
|
||||
|
||||
void CSVNParser::GetDistZone(CString& dist, CString& output)
|
||||
{
|
||||
CString temp;
|
||||
temp.Format(_T("<B>[적용존]</B>\r\n%s\r\n\r\n\r\n"), dist);
|
||||
output = output + temp;
|
||||
}
|
||||
|
||||
void CSVNParser::GetRivision(int& revision, CString& output)
|
||||
{
|
||||
CString temp;
|
||||
temp.Format(_T("<B>[Revision]</B>\r\n%d\r\n\r\n"), revision);
|
||||
output = output + temp;
|
||||
}
|
||||
|
||||
void CSVNParser::GetExplain(CString& output)
|
||||
{
|
||||
CString temp;
|
||||
temp.Format(_T("<B>[변경내용]</B>\r\n%s\r\n\r\n"), m_explains);
|
||||
output = output + temp;
|
||||
}
|
||||
|
||||
void CSVNParser::GetFiles(CString& output)
|
||||
{
|
||||
CString temp;
|
||||
temp.Format(_T("<B>[파일목록]</B>\r\n%s\r\n\r\n"), m_files);
|
||||
output = output + temp;
|
||||
}
|
||||
|
||||
void CSVNParser::GetSpecific(CString& output)
|
||||
{
|
||||
CString temp;
|
||||
temp.Format(_T("<B>[세부사항]</B>\r\n"));
|
||||
output = output + temp;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
#pragma once
|
||||
|
||||
class CSVNParser
|
||||
{
|
||||
public:
|
||||
CSVNParser(void);
|
||||
~CSVNParser(void);
|
||||
|
||||
void Init();
|
||||
void Destroy();
|
||||
|
||||
public:
|
||||
BOOL Load(CString& file);
|
||||
void Parse(CString& dist, int& revision, CString& output);
|
||||
|
||||
protected:
|
||||
void Reset();
|
||||
|
||||
void LoadTitle(CString& text);
|
||||
void LoadFile(CString& text);
|
||||
void LoadExplain(CString& text);
|
||||
|
||||
void GetDistZone(CString& dist, CString& output);
|
||||
void GetRivision(int& revision, CString& output);
|
||||
void GetExplain(CString& output);
|
||||
void GetFiles(CString& output);
|
||||
void GetSpecific(CString& output);
|
||||
|
||||
protected:
|
||||
CString m_file;
|
||||
CStringArray m_books;
|
||||
|
||||
CString m_title;
|
||||
CString m_revision, m_author, m_date, m_effected;
|
||||
CString m_files, m_explains;
|
||||
};
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
|
||||
// SVNPoster.cpp : 응용 프로그램에 대한 클래스 동작을 정의합니다.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "SVNPoster.h"
|
||||
#include "SVNPosterDlg.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// CSVNPosterApp
|
||||
|
||||
BEGIN_MESSAGE_MAP(CSVNPosterApp, CWinApp)
|
||||
ON_COMMAND(ID_HELP, &CWinApp::OnHelp)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CSVNPosterApp 생성
|
||||
|
||||
CSVNPosterApp::CSVNPosterApp()
|
||||
{
|
||||
// 다시 시작 관리자 지원
|
||||
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
|
||||
|
||||
// TODO: 여기에 생성 코드를 추가합니다.
|
||||
// InitInstance에 모든 중요한 초기화 작업을 배치합니다.
|
||||
}
|
||||
|
||||
|
||||
// 유일한 CSVNPosterApp 개체입니다.
|
||||
|
||||
CSVNPosterApp theApp;
|
||||
|
||||
|
||||
// CSVNPosterApp 초기화
|
||||
|
||||
BOOL CSVNPosterApp::InitInstance()
|
||||
{
|
||||
// 응용 프로그램 매니페스트가 ComCtl32.dll 버전 6 이상을 사용하여 비주얼 스타일을
|
||||
// 사용하도록 지정하는 경우, Windows XP 상에서 반드시 InitCommonControlsEx()가 필요합니다.
|
||||
// InitCommonControlsEx()를 사용하지 않으면 창을 만들 수 없습니다.
|
||||
INITCOMMONCONTROLSEX InitCtrls;
|
||||
InitCtrls.dwSize = sizeof(InitCtrls);
|
||||
// 응용 프로그램에서 사용할 모든 공용 컨트롤 클래스를 포함하도록
|
||||
// 이 항목을 설정하십시오.
|
||||
InitCtrls.dwICC = ICC_WIN95_CLASSES;
|
||||
InitCommonControlsEx(&InitCtrls);
|
||||
|
||||
CWinApp::InitInstance();
|
||||
|
||||
|
||||
AfxEnableControlContainer();
|
||||
|
||||
// 대화 상자에 셸 트리 뷰 또는
|
||||
// 셸 목록 뷰 컨트롤이 포함되어 있는 경우 셸 관리자를 만듭니다.
|
||||
CShellManager *pShellManager = new CShellManager;
|
||||
|
||||
// 표준 초기화
|
||||
// 이들 기능을 사용하지 않고 최종 실행 파일의 크기를 줄이려면
|
||||
// 아래에서 필요 없는 특정 초기화
|
||||
// 루틴을 제거해야 합니다.
|
||||
// 해당 설정이 저장된 레지스트리 키를 변경하십시오.
|
||||
// TODO: 이 문자열을 회사 또는 조직의 이름과 같은
|
||||
// 적절한 내용으로 수정해야 합니다.
|
||||
SetRegistryKey(_T("로컬 응용 프로그램 마법사에서 생성된 응용 프로그램"));
|
||||
|
||||
CSVNPosterDlg dlg;
|
||||
m_pMainWnd = &dlg;
|
||||
INT_PTR nResponse = dlg.DoModal();
|
||||
if (nResponse == IDOK)
|
||||
{
|
||||
// TODO: 여기에 [확인]을 클릭하여 대화 상자가 없어질 때 처리할
|
||||
// 코드를 배치합니다.
|
||||
}
|
||||
else if (nResponse == IDCANCEL)
|
||||
{
|
||||
// TODO: 여기에 [취소]를 클릭하여 대화 상자가 없어질 때 처리할
|
||||
// 코드를 배치합니다.
|
||||
}
|
||||
|
||||
// 위에서 만든 셸 관리자를 삭제합니다.
|
||||
if (pShellManager != NULL)
|
||||
{
|
||||
delete pShellManager;
|
||||
}
|
||||
|
||||
// 대화 상자가 닫혔으므로 응용 프로그램의 메시지 펌프를 시작하지 않고 응용 프로그램을 끝낼 수 있도록 FALSE를
|
||||
// 반환합니다.
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
|
||||
// SVNPoster.h : PROJECT_NAME 응용 프로그램에 대한 주 헤더 파일입니다.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef __AFXWIN_H__
|
||||
#error "PCH에 대해 이 파일을 포함하기 전에 'stdafx.h'를 포함합니다."
|
||||
#endif
|
||||
|
||||
#include "resource.h" // 주 기호입니다.
|
||||
|
||||
|
||||
// CSVNPosterApp:
|
||||
// 이 클래스의 구현에 대해서는 SVNPoster.cpp을 참조하십시오.
|
||||
//
|
||||
|
||||
class CSVNPosterApp : public CWinApp
|
||||
{
|
||||
public:
|
||||
CSVNPosterApp();
|
||||
|
||||
// 재정의입니다.
|
||||
public:
|
||||
virtual BOOL InitInstance();
|
||||
|
||||
// 구현입니다.
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
extern CSVNPosterApp theApp;
|
||||
Binary file not shown.
@@ -0,0 +1,130 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{A02F1B9A-CDE6-4E57-B140-E12B90830F1B}</ProjectGuid>
|
||||
<RootNamespace>SVNPoster</RootNamespace>
|
||||
<Keyword>MFCProj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>NotSet</CharacterSet>
|
||||
<UseOfMfc>Static</UseOfMfc>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Application</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>NotSet</CharacterSet>
|
||||
<UseOfMfc>Static</UseOfMfc>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<LinkIncremental>true</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
<ValidateAllParameters>true</ValidateAllParameters>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<Culture>0x0412</Culture>
|
||||
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
</Link>
|
||||
<Midl>
|
||||
<MkTypLibCompatible>false</MkTypLibCompatible>
|
||||
<ValidateAllParameters>true</ValidateAllParameters>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</Midl>
|
||||
<ResourceCompile>
|
||||
<Culture>0x0412</Culture>
|
||||
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ClassDiagram1.cd" />
|
||||
<None Include="ReadMe.txt" />
|
||||
<None Include="res\SVNPoster.ico" />
|
||||
<None Include="res\SVNPoster.rc2" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Resource.h" />
|
||||
<ClInclude Include="stdafx.h" />
|
||||
<ClInclude Include="SVNParser.h" />
|
||||
<ClInclude Include="SVNPoster.h" />
|
||||
<ClInclude Include="SVNPosterDlg.h" />
|
||||
<ClInclude Include="targetver.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
|
||||
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SVNParser.cpp" />
|
||||
<ClCompile Include="SVNPoster.cpp" />
|
||||
<ClCompile Include="SVNPosterDlg.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="SVNPoster.rc" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
<ProjectExtensions>
|
||||
<VisualStudio>
|
||||
<UserProperties RESOURCE_FILE="SVNPoster.rc" _x007B_8856F961-340A-11D0-A96B-00C04FD705A2_x007D_="CWebBrowser2" />
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
||||
@@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="소스 파일">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="헤더 파일">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="리소스 파일">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ReadMe.txt" />
|
||||
<None Include="res\SVNPoster.rc2">
|
||||
<Filter>리소스 파일</Filter>
|
||||
</None>
|
||||
<None Include="res\SVNPoster.ico">
|
||||
<Filter>리소스 파일</Filter>
|
||||
</None>
|
||||
<None Include="ClassDiagram1.cd" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="SVNPoster.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SVNPosterDlg.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="stdafx.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="targetver.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Resource.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SVNParser.h">
|
||||
<Filter>헤더 파일</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="SVNPoster.cpp">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SVNPosterDlg.cpp">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SVNParser.cpp">
|
||||
<Filter>소스 파일</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="SVNPoster.rc">
|
||||
<Filter>리소스 파일</Filter>
|
||||
</ResourceCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,331 @@
|
||||
|
||||
// SVNPosterDlg.cpp : 구현 파일
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "SVNPoster.h"
|
||||
#include "SVNPosterDlg.h"
|
||||
#include "afxdialogex.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// CSVNPosterDlg 대화 상자
|
||||
|
||||
|
||||
static int CALLBACK BrowseForFolder_CallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData)
|
||||
{
|
||||
if(uMsg == BFFM_INITIALIZED)
|
||||
{
|
||||
SendMessage(hwnd, BFFM_SETSELECTION, (WPARAM)TRUE, (LPARAM)lpData);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
CSVNPosterDlg::CSVNPosterDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialogEx(CSVNPosterDlg::IDD, pParent)
|
||||
{
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
}
|
||||
|
||||
void CSVNPosterDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialogEx::DoDataExchange(pDX);
|
||||
DDX_Control(pDX, IDC_EDIT_RIVISION, m_rivision);
|
||||
DDX_Control(pDX, IDC_CHECK_ZONE_ALPHA, m_zone_alpha);
|
||||
DDX_Control(pDX, IDC_CHECK_ZONE_DEV, m_zone_dev);
|
||||
DDX_Control(pDX, IDC_CHECK_ZONE_QA, m_zone_qa);
|
||||
DDX_Control(pDX, IDC_CHECK_ZONE_BETA, m_zone_beta);
|
||||
DDX_Control(pDX, IDC_EDIT_LOG, m_log);
|
||||
DDX_Control(pDX, IDC_PROGRESS_BAR, m_progressBar);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CSVNPosterDlg, CDialogEx)
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
ON_BN_CLICKED(IDC_BUTTON_SELECTFOLDER, &CSVNPosterDlg::OnBnClickedButtonSVNRepository)
|
||||
ON_BN_CLICKED(IDC_BUTTON_COPYTOCLIPBOARD, &CSVNPosterDlg::OnBnClickedButtonCopyToClipboard)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CSVNPosterDlg 메시지 처리기
|
||||
|
||||
BOOL CSVNPosterDlg::OnInitDialog()
|
||||
{
|
||||
CDialogEx::OnInitDialog();
|
||||
|
||||
// 이 대화 상자의 아이콘을 설정합니다. 응용 프로그램의 주 창이 대화 상자가 아닐 경우에는
|
||||
// 프레임워크가 이 작업을 자동으로 수행합니다.
|
||||
SetIcon(m_hIcon, TRUE); // 큰 아이콘을 설정합니다.
|
||||
SetIcon(m_hIcon, FALSE); // 작은 아이콘을 설정합니다.
|
||||
|
||||
//ShowWindow(SW_MINIMIZE);
|
||||
|
||||
// TODO: 여기에 추가 초기화 작업을 추가합니다.
|
||||
GetRegistry(_T("repository"), m_repository);
|
||||
//m_zone_dev.SetCheck(TRUE);
|
||||
m_rivision.SetFocus();
|
||||
|
||||
return FALSE; // 포커스를 컨트롤에 설정하지 않으면 TRUE를 반환합니다.
|
||||
}
|
||||
|
||||
// 대화 상자에 최소화 단추를 추가할 경우 아이콘을 그리려면
|
||||
// 아래 코드가 필요합니다. 문서/뷰 모델을 사용하는 MFC 응용 프로그램의 경우에는
|
||||
// 프레임워크에서 이 작업을 자동으로 수행합니다.
|
||||
|
||||
void CSVNPosterDlg::OnPaint()
|
||||
{
|
||||
if (IsIconic())
|
||||
{
|
||||
CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트입니다.
|
||||
|
||||
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
|
||||
|
||||
// 클라이언트 사각형에서 아이콘을 가운데에 맞춥니다.
|
||||
int cxIcon = GetSystemMetrics(SM_CXICON);
|
||||
int cyIcon = GetSystemMetrics(SM_CYICON);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int x = (rect.Width() - cxIcon + 1) / 2;
|
||||
int y = (rect.Height() - cyIcon + 1) / 2;
|
||||
|
||||
// 아이콘을 그립니다.
|
||||
dc.DrawIcon(x, y, m_hIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialogEx::OnPaint();
|
||||
}
|
||||
}
|
||||
|
||||
// 사용자가 최소화된 창을 끄는 동안에 커서가 표시되도록 시스템에서
|
||||
// 이 함수를 호출합니다.
|
||||
HCURSOR CSVNPosterDlg::OnQueryDragIcon()
|
||||
{
|
||||
return static_cast<HCURSOR>(m_hIcon);
|
||||
}
|
||||
|
||||
void CSVNPosterDlg::MakeTemporaries()
|
||||
{
|
||||
if(m_repository.IsEmpty())
|
||||
{
|
||||
OnBnClickedButtonSVNRepository();
|
||||
}
|
||||
|
||||
m_progressBar.SetRange(1, 100);
|
||||
Progress( 10 );
|
||||
|
||||
int fileNumber = rand() % 10000;
|
||||
m_fileName.Format(_T("%d.txt"), fileNumber);
|
||||
|
||||
DeleteFile(m_fileName);
|
||||
|
||||
CString temp;
|
||||
m_rivision.GetWindowText(temp);
|
||||
int revision = _tstoi(temp);
|
||||
|
||||
Progress( 20 );
|
||||
TCHAR command[512];
|
||||
_stprintf_s(command, _countof(command), _T("/c \"svn.exe log %s -v -r %d >> %s\""), m_repository, revision, m_fileName);
|
||||
ShellExecute(NULL , NULL, _T("cmd.exe") , command, NULL, SW_HIDE);
|
||||
|
||||
Progress( 40 );
|
||||
if(LoadTemporaries())
|
||||
{
|
||||
Progress( 70 );
|
||||
if(!ParseTemporaries(revision))
|
||||
return;
|
||||
|
||||
Progress( 100 );
|
||||
Print();
|
||||
}
|
||||
|
||||
DeleteFile(m_fileName);
|
||||
}
|
||||
|
||||
BOOL CSVNPosterDlg::LoadTemporaries()
|
||||
{
|
||||
for(int i = 0 ; i < 3 ; i++)
|
||||
{
|
||||
if(m_SVN.Load(m_fileName))
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
Sleep(400);
|
||||
Progress( GetProgress() + 10 );
|
||||
}
|
||||
|
||||
MessageBox(_T("Can't read revision"), _T("error"), MB_OK);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL CSVNPosterDlg::ParseTemporaries(int& revision)
|
||||
{
|
||||
CString dist;
|
||||
if(m_zone_alpha.GetCheck())
|
||||
{
|
||||
dist = dist + _T("알파존");
|
||||
}
|
||||
if(m_zone_dev.GetCheck())
|
||||
{
|
||||
if(!dist.IsEmpty())
|
||||
dist = dist + _T(", ");
|
||||
dist = dist + _T("개발존");
|
||||
}
|
||||
if(m_zone_qa.GetCheck())
|
||||
{
|
||||
if(!dist.IsEmpty())
|
||||
dist = dist + _T(", ");
|
||||
dist = dist + _T("QA존");
|
||||
}
|
||||
if(m_zone_beta.GetCheck())
|
||||
{
|
||||
if(!dist.IsEmpty())
|
||||
dist = dist + _T(", ");
|
||||
dist = _T("베타존");
|
||||
}
|
||||
|
||||
if(dist.IsEmpty())
|
||||
{
|
||||
MessageBox(_T("Please check one of the ZONE"), _T("warning"), MB_OK);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
m_output.Empty();
|
||||
m_SVN.Parse(dist, revision, m_output);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void CSVNPosterDlg::Print()
|
||||
{
|
||||
CopyToClipBoard();
|
||||
m_log.SetWindowText(m_output);
|
||||
}
|
||||
|
||||
BOOL CSVNPosterDlg::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
|
||||
if(WM_KEYDOWN == pMsg->message )
|
||||
{
|
||||
if(VK_RETURN == pMsg->wParam)
|
||||
{
|
||||
if(m_rivision.GetSafeHwnd() == pMsg->hwnd)
|
||||
{
|
||||
MakeTemporaries();
|
||||
return TRUE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return CDialogEx::PreTranslateMessage(pMsg);
|
||||
}
|
||||
|
||||
|
||||
BOOL SelectFolder(HWND hWnd, CString &folder)
|
||||
{
|
||||
LPITEMIDLIST pidlBrowse;
|
||||
TCHAR szFolder[MAX_PATH];
|
||||
|
||||
BROWSEINFO brInfo;
|
||||
::ZeroMemory(&brInfo, sizeof(BROWSEINFO));
|
||||
brInfo.hwndOwner = hWnd; // 윈도우 핸들
|
||||
brInfo.pidlRoot = NULL;
|
||||
brInfo.pszDisplayName = NULL;
|
||||
brInfo.lpszTitle = _T("Select SVN Repository");
|
||||
brInfo.ulFlags = BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT; // 옵션 지정
|
||||
brInfo.lpfn = BrowseForFolder_CallbackProc; //콜백함수
|
||||
brInfo.lParam = (LPARAM)(LPCSTR)(LPCTSTR)(folder);
|
||||
|
||||
::ZeroMemory(szFolder, sizeof(szFolder));
|
||||
|
||||
pidlBrowse = ::SHBrowseForFolder(&brInfo); // 다이얼로그를 띄운다.
|
||||
if(pidlBrowse != NULL)
|
||||
{
|
||||
::SHGetPathFromIDList(pidlBrowse, szFolder); // 패스를 얻어온다.
|
||||
folder = szFolder;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void CSVNPosterDlg::OnBnClickedButtonSVNRepository()
|
||||
{
|
||||
if(SelectFolder(GetSafeHwnd(), m_repository))
|
||||
{
|
||||
SetRegistry(_T("repository"), m_repository);
|
||||
SetCurrentDirectory(m_repository);
|
||||
}
|
||||
}
|
||||
|
||||
void CSVNPosterDlg::SetRegistry(const TCHAR* option, CString& value)
|
||||
{
|
||||
TCHAR regKey[512];
|
||||
_stprintf_s(regKey, _countof(regKey), _T("software\\lostsaga\\SVN_Poster"));
|
||||
|
||||
HKEY key;
|
||||
DWORD disp = 0;
|
||||
LONG ret = RegCreateKeyEx(HKEY_CURRENT_USER, regKey,
|
||||
0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &key, &disp);
|
||||
if(ret != ERROR_SUCCESS) return;
|
||||
|
||||
DWORD length = _tcslen(value.GetString()) * (sizeof(TCHAR)) + 1;
|
||||
RegSetValueEx(key, option, 0, REG_EXPAND_SZ, (BYTE*)value.GetBuffer(), length);
|
||||
|
||||
RegCloseKey(key);
|
||||
}
|
||||
|
||||
BOOL CSVNPosterDlg::GetRegistry(const TCHAR* option, CString& value)
|
||||
{
|
||||
HKEY key;
|
||||
LONG ret = RegOpenKeyEx(HKEY_CURRENT_USER, _T("software\\lostsaga\\SVN_Poster"), 0, KEY_ALL_ACCESS, &key);
|
||||
if(ERROR_SUCCESS != ret) return 0;
|
||||
|
||||
TCHAR temp[512];
|
||||
DWORD length = sizeof(temp);
|
||||
|
||||
DWORD type = REG_EXPAND_SZ;
|
||||
if(RegQueryValueEx(key, option, NULL, &type, (LPBYTE)temp, &length) == ERROR_SUCCESS)
|
||||
{
|
||||
RegCloseKey(key);
|
||||
value = temp;
|
||||
return TRUE;
|
||||
}
|
||||
RegCloseKey(key);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void CSVNPosterDlg::CopyToClipBoard()
|
||||
{
|
||||
HGLOBAL hMem;
|
||||
if( OpenClipboard() )
|
||||
{
|
||||
if( EmptyClipboard() )
|
||||
{
|
||||
hMem = GlobalAlloc( GMEM_MOVEABLE | GMEM_DDESHARE, m_output.GetLength()+1 );
|
||||
if( hMem )
|
||||
{
|
||||
LPTSTR pClipData = (LPTSTR)GlobalLock(hMem);
|
||||
pClipData[0] = 0;
|
||||
|
||||
memcpy( pClipData, m_output, m_output.GetLength() );
|
||||
pClipData[m_output.GetLength()] = NULL;
|
||||
|
||||
SetClipboardData( CF_OEMTEXT, hMem );
|
||||
GlobalUnlock( hMem );
|
||||
}
|
||||
|
||||
CloseClipboard();
|
||||
GlobalFree( hMem );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CSVNPosterDlg::OnBnClickedButtonCopyToClipboard()
|
||||
{
|
||||
CopyToClipBoard();
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
|
||||
// SVNPosterDlg.h : 헤더 파일
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "afxwin.h"
|
||||
#include "afxcmn.h"
|
||||
#include "afxhtml.h"
|
||||
#include "SVNParser.h"
|
||||
|
||||
// CSVNPosterDlg 대화 상자
|
||||
class CSVNPosterDlg : public CDialogEx
|
||||
{
|
||||
// 생성입니다.
|
||||
public:
|
||||
CSVNPosterDlg(CWnd* pParent = NULL); // 표준 생성자입니다.
|
||||
|
||||
// 대화 상자 데이터입니다.
|
||||
enum { IDD = IDD_SVNPOSTER_DIALOG };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다.
|
||||
|
||||
protected:
|
||||
void MakeTemporaries();
|
||||
BOOL LoadTemporaries();
|
||||
BOOL ParseTemporaries(int& revision);
|
||||
void Print();
|
||||
void CopyToClipBoard();
|
||||
|
||||
void SetRegistry(const TCHAR* option, CString& value);
|
||||
BOOL GetRegistry(const TCHAR* option, CString& value);
|
||||
|
||||
void Progress(const int progress)
|
||||
{
|
||||
m_progress = progress;
|
||||
m_progressBar.SetPos(m_progress);
|
||||
}
|
||||
int GetProgress() { return m_progress; }
|
||||
|
||||
protected:
|
||||
CString m_fileName;
|
||||
CString m_repository;
|
||||
CSVNParser m_SVN;
|
||||
CString m_output;
|
||||
|
||||
int m_progress;
|
||||
|
||||
// 구현입니다.
|
||||
protected:
|
||||
HICON m_hIcon;
|
||||
|
||||
// 생성된 메시지 맵 함수
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnPaint();
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
public:
|
||||
CEdit m_rivision;
|
||||
CButton m_zone_alpha;
|
||||
CButton m_zone_dev;
|
||||
CButton m_zone_qa;
|
||||
CButton m_zone_beta;
|
||||
CEdit m_log;
|
||||
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
||||
afx_msg void OnBnClickedButtonSVNRepository();
|
||||
CProgressCtrl m_progressBar;
|
||||
afx_msg void OnBnClickedButtonCopyToClipboard();
|
||||
};
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 66 KiB |
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
|
||||
// stdafx.cpp : 표준 포함 파일만 들어 있는 소스 파일입니다.
|
||||
// SVNPoster.pch는 미리 컴파일된 헤더가 됩니다.
|
||||
// stdafx.obj에는 미리 컴파일된 형식 정보가 포함됩니다.
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
|
||||
// stdafx.h : 자주 사용하지만 자주 변경되지는 않는
|
||||
// 표준 시스템 포함 파일 및 프로젝트 관련 포함 파일이
|
||||
// 들어 있는 포함 파일입니다.
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef _SECURE_ATL
|
||||
#define _SECURE_ATL 1
|
||||
#endif
|
||||
|
||||
#ifndef VC_EXTRALEAN
|
||||
#define VC_EXTRALEAN // 거의 사용되지 않는 내용은 Windows 헤더에서 제외합니다.
|
||||
#endif
|
||||
|
||||
#include "targetver.h"
|
||||
|
||||
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 일부 CString 생성자는 명시적으로 선언됩니다.
|
||||
|
||||
// MFC의 공통 부분과 무시 가능한 경고 메시지에 대한 숨기기를 해제합니다.
|
||||
#define _AFX_ALL_WARNINGS
|
||||
|
||||
#include <afxwin.h> // MFC 핵심 및 표준 구성 요소입니다.
|
||||
#include <afxext.h> // MFC 확장입니다.
|
||||
|
||||
|
||||
#include <afxdisp.h> // MFC 자동화 클래스입니다.
|
||||
|
||||
|
||||
|
||||
#ifndef _AFX_NO_OLE_SUPPORT
|
||||
#include <afxdtctl.h> // Internet Explorer 4 공용 컨트롤에 대한 MFC 지원입니다.
|
||||
#endif
|
||||
#ifndef _AFX_NO_AFXCMN_SUPPORT
|
||||
#include <afxcmn.h> // Windows 공용 컨트롤에 대한 MFC 지원입니다.
|
||||
#endif // _AFX_NO_AFXCMN_SUPPORT
|
||||
|
||||
#include <afxcontrolbars.h> // MFC의 리본 및 컨트롤 막대 지원
|
||||
#include <afxdisp.h>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef _UNICODE
|
||||
#if defined _M_IX86
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#elif defined _M_X64
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#else
|
||||
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
// 포함 SDKDDKVer.h는 사용 가능한 Windows 플랫폼 중 버전이 가장 높은 플랫폼을 정의합니다.
|
||||
|
||||
// 이전 Windows 플랫폼에 대해 응용 프로그램을 빌드하려는 경우에는 SDKDDKVer.h를 포함하기 전에
|
||||
// WinSDKVer.h를 포함하고 _WIN32_WINNT 매크로를 지원하려는 플랫폼으로 설정하십시오.
|
||||
|
||||
#include <SDKDDKVer.h>
|
||||
Reference in new issue
Block a user