Click here to Skip to main content
15,894,405 members
Articles / Desktop Programming / MFC

Yaida

Rate me:
Please Sign up or sign in to vote.
2.74/5 (6 votes)
25 Aug 20043 min read 35.9K   173   9  
Yet another installer deployment application.
//
// yaidaDoc.h
//
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#ifndef XML_H
#include "xml.h"
#endif

#ifndef YAIDABUILD_H
#include "yaidaBuild.h"
#endif

// .....................................................
class CProject
{
	//filename of .ydproj
	CString sFileName;
	//configuration by name
	CString sConfiguration;
	//Base path/name of project
	CString sBase;
	//Using visual studio deployment project
	bool bVSD;

public:
	CProject( ) : bVSD( false ) { }
	void NewProject( LPCTSTR fileName );
	void ReadXML( CFile* file );
	void WriteXML( CFile* file );
	void SetConfiguration( LPCTSTR name ) { sConfiguration= name; }
	const CString& GetConfiguration( ) { return sConfiguration; }
	void SetBase( LPCTSTR base ) { sBase= base; }
	const CString& GetBase( ) { return sBase; }
	void SetVSD( bool set= true ) { bVSD= set; }
	bool IsVSD( ) { return bVSD; }
};

//.....................................................
class CyaidaDoc : public CDocument
{
protected: // create from serialization only
	CyaidaDoc( );
	virtual ~CyaidaDoc( );
	DECLARE_DYNCREATE( CyaidaDoc )

	//The doc file
	CProject cProject;
	//Only need one set of rules at a time for now.
	CYRULES rules;

protected:
	//Doc owns the other thread
	CWinRedirector redir;
	CDialogBar cConfigureBar;
	CComboBox cConfigureCombo;

public:
	//Other Thread's window set by MainFrame
	CEditView* pvOutput;

public:
	bool IsOpen( ) { return !m_strPathName.IsEmpty( ); }
	//Doc creates internal action objects
	CYACTION* GetInternal( LPCTSTR args );
	void InitialUpdate( );

public:
	virtual BOOL OnOpenDocument( LPCTSTR lpszPathName );
	virtual BOOL OnSaveDocument( LPCTSTR lpszPathName );
	virtual BOOL OnNewDocument( );
	virtual void Serialize( CArchive& ar );

public:
#ifdef _DEBUG
	virtual void AssertValid( ) const;
	virtual void Dump( CDumpContext& dc ) const;
#endif

protected:
	DECLARE_MESSAGE_MAP( )
public:
	afx_msg void OnFileNew( );
	afx_msg void OnControlBreak( );
	afx_msg void OnBuildRebuild( );
	afx_msg void OnUpdateIsBuilding( CCmdUI *pCmdUI );
	afx_msg void OnUpdateNotBuilding( CCmdUI *pCmdUI );
	afx_msg void OnUpdateIsOpen( CCmdUI *pCmdUI );
	virtual void SetPathName( LPCTSTR lpszPathName, BOOL bAddToMRU = TRUE );
	afx_msg void OnCbnSelchangeConfigureCombo( );
	afx_msg void OnBuildBuild( );
};

// internal action to merge visual's rules with wix........
class CWixUpdateFromVD: public CREDAction
{
private:
	CXML vdx;
	CXML wix;
	CString strConfig;
	CString str_vdproj;
	CString str_wix;
	bool UpdateWix( );

public:
	CWixUpdateFromVD( LPCTSTR args );
	virtual ~CWixUpdateFromVD( ){ }
	virtual HRESULT Step( );
};

//vdparse.cpp
HRESULT GetVDtoXML( CFile* file, CXML& xml );

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Systems Engineer
United States United States
In 2001 my wife and I started on a new business venture. Reserve Analyst Software

http://www.ReserveAnalyst.com

I have been messing with computers since the 6502 was announced. A good deal on the hardware side.


http://www.Lakeweb.net


Thanks, Dan.


Comments and Discussions