Auto Sample
This is one of the samples that comes with the MFC version of NSELib.
This sample is available for Delphi too.
This sample demonstrates the usage of stock objects that come with NSELib: Automatic namespace extensions (CAutoNameSpaceExtension), shortcut items (CShortcutNameSpaceItem) and action items (CActionNameSpaceItem).
AutoExtension.h
This is the header file for the class CAutoExtension.
#if !defined(AFX_AUTOEXTENSION_H__EA233978_B84E_488C_97B1_D4EC18997720__INCLUDED_)
#define AFX_AUTOEXTENSION_H__EA233978_B84E_488C_97B1_D4EC18997720__INCLUDED_
#include "NameSpaceExtension.h"
#include "AutoNameSpaceExtension.h"
//TODO: Standard columns - change and add as you need
#define AUTO_COLUMN_NAME 0
#define AUTO_COLUMN_SIZE 1
#define AUTO_COLUMN_TYPE 2
#define AUTO_COLUMN_MODIFIED 3
#define SIG_AUTO 'AUTO'
#define COMMAND_AUTO_ADDITEM 1
class CNameSpaceItem;
class CAutoExtension : public CAutoNameSpaceExtension
{
public:
DECLARE_DYNCREATE(CAutoExtension);
CAutoExtension(CNameSpaceExtension *pParent = NULL);
virtual REFCLSID GetClassID();
virtual CNameSpaceExtension *CreateFolder(CNameSpaceItem* pItem);
virtual CShellUIObject *CreateUIObject(UINT cidl, const CNameSpaceItem** aItems, HWND hWndOwner);
virtual CString GetWebPage();
virtual CString GetDisplayName(DWORD uFlags);
virtual ULONG GetAttributes();
virtual JUNCTIONPOINT GetJunctionPoint();
virtual CPCATEGORY GetCPCategory();
virtual CString GetProtocolPrefix();
virtual CNameSpaceItem* ParseItemName(LPCTSTR szName);
virtual CString GetFileType();
virtual CString GetFileExtension();
virtual void Populate();
virtual BOOL OnCommand(HWND hWndView, UINT idCmd);
};
#endif // !defined(AFX_AUTOEXTENSION_H__EA233978_B84E_488C_97B1_D4EC18997720__INCLUDED_)
AutoExtension.cpp
This file implements the class CAutoExtension.
This class is derived from CAutoNameSpaceExtension, not from CNameSpaceExtension. It doesn't have the functions GetFirstRegularItem etc. Instead it has the function Populate.
In the function Populate, you see how a shortcut item and an action item can be added.
When the action item is invoked, the function OnCommand is called and a new item is added.
#include "stdafx.h" #include "AutoExtension.h" #include "AutoItem.h" #include "AutoUIObject.h" #include "ActionNameSpaceItem.h" #include "ShortcutNameSpaceItem.h" #includeIMPLEMENT_DYNCREATE(CAutoExtension, CNameSpaceExtension); extern CLSID CLSID_AutoExtension; CAutoExtension::CAutoExtension(CNameSpaceExtension *pParent) : CAutoNameSpaceExtension(pParent) { } REFCLSID CAutoExtension::GetClassID() { return CLSID_AutoExtension; } CNameSpaceExtension *CAutoExtension::CreateFolder(CNameSpaceItem* pItem) { //TODO: Initialize the new folder return new CAutoExtension(this); } CShellUIObject *CAutoExtension::CreateUIObject(UINT cidl, const CNameSpaceItem** aItems, HWND hWndOwner) { return new CAutoUIObject(this, cidl, aItems, GetPidl(), hWndOwner); } CString CAutoExtension::GetWebPage() { return "folder.htt"; } CString CAutoExtension::GetDisplayName(DWORD uFlags) { if (!m_pParent) { return "Auto NSE"; } return CNameSpaceExtension::GetDisplayName(uFlags); } ULONG CAutoExtension::GetAttributes() { if (!m_pParent) { return SFGAO_CANLINK | SFGAO_CANRENAME | SFGAO_DROPTARGET | SFGAO_BROWSABLE | SFGAO_FOLDER; } return CNameSpaceExtension::GetAttributes(); } JUNCTIONPOINT CAutoExtension::GetJunctionPoint() { return JUNCTIONPOINT_MYCOMPUTER; } CString CAutoExtension::GetProtocolPrefix() { //TODO: Add a protocol prefix here to support URL protocol browsing return ""; } CString CAutoExtension::GetFileType() { //TODO: Add a file class here to support in-place file type browsing (ie. "txtfile") return ""; } CString CAutoExtension::GetFileExtension() { //TODO: Add a file type here to associate the file class with a file extension on registration (ie. "txt") return ""; } CNameSpaceItem* CAutoExtension::ParseItemName(LPCTSTR szName) { //TODO: Override this method if you want to use custom parsing for paths or URLS // For example - ftp://ftp.mysite.com/ // Default implementation enumerates the folder and compares display names to find the item return CNameSpaceExtension::ParseItemName(szName); } CPCATEGORY CAutoExtension::GetCPCategory() { //TODO: Change the control panel category for Control Panel NSEs. return CPCATEGORY_DONOTADD; } void CAutoExtension::Populate() { CNameSpaceItem *pNewItem = new CActionNameSpaceItem(this, "Add Item", "Run Wizard", "Execute to add a new item to this folder.", 0, COMMAND_AUTO_ADDITEM); AddItem(pNewItem); delete pNewItem; LPITEMIDLIST pidlControlPanel; ::SHGetSpecialFolderLocation(NULL, CSIDL_CONTROLS, &pidlControlPanel); pNewItem = new CShortcutNameSpaceItem(this, "Shortcut to Control Panel", pidlControlPanel); AddItem(pNewItem); delete pNewItem; ::ILFree(pidlControlPanel); } BOOL CAutoExtension::OnCommand(HWND hWndView, UINT idCmd) { if (idCmd == COMMAND_AUTO_ADDITEM) { CAutoItem *pItem = new CAutoItem(this, "Item"); AddItem(pItem); UpdateAddedItem(pItem); delete pItem; } return TRUE; }
AutoItem.h
This is the header file for class CAutoItem.
#ifndef _AFX_AUTOITEM_H__D30AC85F_59FC_40A9_8E06_8752419B886F__IS_INCLUDED
#define _AFX_AUTOITEM_H__D30AC85F_59FC_40A9_8E06_8752419B886F__IS_INCLUDED
#include "NameSpaceItem.h"
class CNameSpaceExtension;
class CAutoItem : public CNameSpaceItem
{
public:
DECLARE_SERIAL(CAutoItem);
CAutoItem() {};
CAutoItem(CNameSpaceExtension* pFolder, CString sName);
virtual ~CAutoItem();
virtual CString GetDisplayName(DWORD uFlags) const;
virtual CString GetInfoTip(void) const;
virtual BOOL GetFindData(WIN32_FIND_DATAW *pFindData) const;
virtual int GetIconIndex(UINT uFlags, UINT *puiReturnFlags) const;
virtual ULONG GetAttributes() const;
virtual CString GetItemDetail(UINT iCol) const;
virtual CString GetStorageType() const;
virtual int CompareTo(UINT iCol, const CNameSpaceItem* pOtherItem) const;
virtual BOOL Rename(CString sNewName);
virtual BOOL Delete();
virtual CString GetIconModule() const;
virtual BOOL IsValidObject() const;
virtual CString GetFileAttributes() const;
virtual void Serialize( CArchive& ar );
protected:
CString m_sName;
};
#endif
AutoItem.cpp
This file implements the class CAutoItem.
#include "stdafx.h" #include#include "AutoItem.h" #include "AutoExtension.h" #include "NSEUtils.h" IMPLEMENT_SERIAL(CAutoItem, CNameSpaceItem, 1); CAutoItem::CAutoItem(CNameSpaceExtension* pFolder, CString sName) : CNameSpaceItem(pFolder) { m_sName = sName; } CAutoItem::~CAutoItem() { } void CAutoItem::Serialize( CArchive& ar ) { CNameSpaceItem::Serialize( ar ); //TODO: Store/Read all members ie; if( ar.IsStoring() ) { ar << m_sName; } else { ar >> m_sName; } } BOOL CAutoItem::IsValidObject() const { //TODO: Validate your object, the call the base class return CNameSpaceItem::IsValidObject(); } CString CAutoItem::GetStorageType() const { //TODO: Return the storage type - ie. "Word Document" return "StorageType"; } CString CAutoItem::GetInfoTip() const { //TODO: Return the info tip - ie. "Contains text" return GetDisplayName(0); } BOOL CAutoItem::Rename(CString sNewName) { //TODO: Rename the item (cause the GetDisplayName method to return sNewName) and // perform any operation to rename the object referred to. // Return TRUE if OK return FALSE; } BOOL CAutoItem::Delete() { //TODO: Perform any operation to delete the object referred to. // Return TRUE if OK dynamic_cast (m_pFolder)->RemoveItem(this); m_pFolder->UpdateRemovedItem(this); return TRUE; } CString CAutoItem::GetDisplayName(DWORD uFlags) const { //TODO: Return the display name of your object return m_sName; } ULONG CAutoItem::GetAttributes() const { //TODO: Return SFGAO_ attributes as returned by IShellFolder::GetAttributes for this item return SFGAO_CANDELETE | SFGAO_CANLINK | SFGAO_CANCOPY | SFGAO_CANMOVE; } BOOL CAutoItem::GetFindData(WIN32_FIND_DATAW *pFindData) const { //TODO: Fill in the WIN32_FIND_DATAW for this item, and return TRUE if OK. return FALSE; } int CAutoItem::GetIconIndex(UINT uFlags, UINT *puiReturnFlags) const { //TODO: Return an icon index for this item in the file indicated by GetIconModule return 0; } CString CAutoItem::GetIconModule() const { //TODO: Return the module path to your icons return CNameSpaceItem::GetIconModule(); } CString CAutoItem::GetItemDetail(UINT iCol) const { //TODO: Return the item detail for the column number (defined in CNameSpaceExtension::GetColumnTitle) if (iCol == 0) { return GetDisplayName(0); } return ""; } CString CAutoItem::GetFileAttributes() const { //TODO: Return attributes as a string (ie. "Read Only, System") return ""; } int CAutoItem::CompareTo(UINT iCol, const CNameSpaceItem* pOtherItem) const { //TODO: Compare the two items with reference to the column number. switch(iCol) { case AUTO_COLUMN_NAME: { return m_sName.CompareNoCase(pOtherItem->GetDisplayName(SHGDN_NORMAL)); } case AUTO_COLUMN_SIZE: { WIN32_FIND_DATAW data; ::ZeroMemory(&data, sizeof(WIN32_FIND_DATAW)); GetFindData(&data); DWORD dwSize1 = data.nFileSizeLow; ::ZeroMemory(&data, sizeof(WIN32_FIND_DATAW)); pOtherItem->GetFindData(&data); DWORD dwSize2 = data.nFileSizeLow; if (dwSize1 == dwSize2) { return 0; } else if (dwSize1 > dwSize2) { return 1; } else { return -1; } } case AUTO_COLUMN_MODIFIED: { WIN32_FIND_DATAW data; ::ZeroMemory(&data, sizeof(WIN32_FIND_DATAW)); GetFindData(&data); COleDateTime oledt1(data.ftLastWriteTime); ::ZeroMemory(&data, sizeof(WIN32_FIND_DATAW)); pOtherItem->GetFindData(&data); COleDateTime oledt2(data.ftLastWriteTime); if (oledt1 == oledt2) { return 0; } else if (oledt1 > oledt2) { return 1; } else { return -1; } } default: { CString str1 = GetItemDetail(iCol); CString str2 = GetItemDetail(iCol); return str1.Compare(str2); } } }
AutoUIObject.h
This is the header file for class CAutoUIObject.
#if !defined(AFX_AUTOUIOBJECT_H__B8275C56_DD9A_41ED_B5F8_0F98A91DB4DC__INCLUDED_)
#define AFX_AUTOUIOBJECT_H__B8275C56_DD9A_41ED_B5F8_0F98A91DB4DC__INCLUDED_
#include "ShellUIObject.h"
class CNameSpaceItem;
class CAutoUIObject : public CShellUIObject
{
public:
CAutoUIObject(CNameSpaceExtension *pFolder, UINT cidl, const CNameSpaceItem** aItems, LPCITEMIDLIST basePidl, HWND hWndOwner = NULL);
CAutoUIObject();
DECLARE_DYNCREATE(CAutoUIObject);
virtual REFCLSID GetClassID();
virtual UINT FillContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
virtual BOOL InvokeCommand(LPCMINVOKECOMMANDINFO lpici);
virtual BOOL InvokeDefaultCommand();
virtual BOOL GetFormatEtc(ULONG iIndex, FORMATETC *pfetc);
virtual BOOL IsClipFormatSupported(CLIPFORMAT cf);
virtual BOOL GetData(CLIPFORMAT cf, HGLOBAL hGlobal);
virtual DWORD GetDataSize(CLIPFORMAT cf);
};
#define AUTO_COMMAND_EDIT 1
const int nAutoCommands = 1;
#endif
AutoUIObject.cpp
This file implements class CAutoUIObject.
#include "stdafx.h" #include "AutoUIObject.h" #include "AutoApp.h" #includeextern CLSID CLSID_AutoUIObject; IMPLEMENT_DYNCREATE(CAutoUIObject, CShellUIObject); UINT MyILGetSize(LPCITEMIDLIST pidl) { UINT cbTotal = 0; LPITEMIDLIST pidlTemp = (LPITEMIDLIST) pidl; if(pidlTemp) { while(pidlTemp->mkid.cb) { cbTotal += pidlTemp->mkid.cb; pidlTemp = (LPITEMIDLIST)(LPBYTE) ( ((LPBYTE)pidlTemp) + pidlTemp->mkid.cb); } cbTotal += sizeof(ITEMIDLIST); } return (cbTotal); } CAutoUIObject::CAutoUIObject() : CShellUIObject(NULL, NULL, NULL, NULL) { } CAutoUIObject::CAutoUIObject(CNameSpaceExtension *pFolder, UINT cidl, const CNameSpaceItem** aItems, LPCITEMIDLIST basePidl, HWND hWndOwner) : CShellUIObject(pFolder, cidl, aItems, basePidl, hWndOwner) { } REFCLSID CAutoUIObject::GetClassID() { return CLSID_AutoUIObject; } UINT CAutoUIObject::FillContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) { UINT result = idCmdFirst + nAutoCommands+1; BOOL bCanEdit = FALSE; if ((!(uFlags & CMF_DEFAULTONLY)) || !bCanEdit) { result = CShellUIObject::FillContextMenu(hmenu, indexMenu, idCmdFirst+nAutoCommands, idCmdLast, uFlags); } return result; } BOOL CAutoUIObject::InvokeCommand(LPCMINVOKECOMMANDINFO lpici) { if (!HIWORD(lpici->lpVerb)) { *(short *)&lpici->lpVerb -= nAutoCommands; } return CShellUIObject::InvokeCommand(lpici); } BOOL CAutoUIObject::InvokeDefaultCommand() { return CShellUIObject::InvokeDefaultCommand(); } BOOL CAutoUIObject::GetFormatEtc(ULONG iIndex, FORMATETC *pfetc) { if (iIndex == 0) { pfetc->cfFormat = ::NSEGetApp()->GetClipboardFormat(CFSTR_AUTOITEMS); pfetc->dwAspect = DVASPECT_CONTENT; pfetc->lindex = -1; pfetc->ptd = NULL; pfetc->tymed = TYMED_HGLOBAL; return TRUE; } else { return CShellUIObject::GetFormatEtc(iIndex-1, pfetc); } } BOOL CAutoUIObject::IsClipFormatSupported(CLIPFORMAT cf) { if (cf == ::NSEGetApp()->GetClipboardFormat(CFSTR_AUTOITEMS)) { return TRUE; } return CShellUIObject::IsClipFormatSupported(cf); } BOOL CAutoUIObject::GetData(CLIPFORMAT cf, HGLOBAL hGlobal) { if (cf == ::NSEGetApp()->GetClipboardFormat(CFSTR_AUTOITEMS)) { BYTE *pData = (BYTE *)::GlobalLock(hGlobal); *(int *)pData = m_cidl; pData += sizeof(int); int iSize = ::ILGetSize(m_BasePidl); memcpy(pData, m_BasePidl, iSize); pData += iSize; memset(pData, 0, 4); pData += 4; for (int i = 0; i < m_cidl; i++) { iSize = ::ILGetSize(m_apidls[i]); memcpy(pData, m_apidls[i], iSize); pData += iSize; memset(pData, 0, 4); pData += 4; } return TRUE; } return CShellUIObject::GetData(cf, hGlobal); } DWORD CAutoUIObject::GetDataSize(CLIPFORMAT cf) { int iSize = sizeof(int); iSize += ::ILGetSize(m_BasePidl)+4; for (int i = 0; i < m_cidl; i++) { iSize += ::ILGetSize(m_apidls[i])+4; } return iSize; }
AutoApp.h
This file is generated by the wizard.
#if !defined(AFX_AUTOAPP_H__C2A17095_CA77_453E_BF5A_3427F689DA3F__INCLUDED_)
#define AFX_AUTOAPP_H__C2A17095_CA77_453E_BF5A_3427F689DA3F__INCLUDED_
#include "NameSpaceApp.h"
class CAutoApp : public CNameSpaceApp
{
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
virtual HRESULT RegisterServer();
virtual HRESULT UnRegisterServer();
virtual HRESULT GetClassObject(REFCLSID rclsid, REFIID riid, LPVOID * ppv);
virtual DWORD GetClipboardFormat(const char *pszClip);
protected:
UINT m_cfAutoItems;
};
#define CFSTR_AUTOITEMS "ClipFormat_Auto_Items"
#endif // !defined(AFX_AUTOAPP_H__C2A17095_CA77_453E_BF5A_3427F689DA3F__INCLUDED_)
AutoApp.cpp
This file is generated by the wizard.
#include "stdafx.h"
#include "AutoApp.h"
#include "AutoFactory.h"
#include "AutoExtension.h"
#include "AutoUIObject.h"
CLSID CLSID_AutoExtension, CLSID_AutoUIObject;
BOOL CAutoApp::InitInstance()
{
::CLSIDFromString(L"{E37D192C-522A-4D45-B71A-8C2442F31CF8}", &CLSID_AutoExtension);
::CLSIDFromString(L"{51A0F78A-3477-454D-87B7-AFC3F8A18E5E}", &CLSID_AutoUIObject);
m_cfAutoItems = ::RegisterClipboardFormat(CFSTR_AUTOITEMS);
return CNameSpaceApp::InitInstance();
}
int CAutoApp::ExitInstance()
{
return CNameSpaceApp::ExitInstance();
}
DWORD CAutoApp::GetClipboardFormat(const char *pszClip)
{
if (strcmp(pszClip, CFSTR_AUTOITEMS) == 0)
{
return m_cfAutoItems;
}
return CNameSpaceApp::GetClipboardFormat(pszClip);
}
HRESULT CAutoApp::RegisterServer()
{
if (!theFactory.Register())
{
return E_FAIL;
}
return NOERROR;
}
HRESULT CAutoApp::UnRegisterServer()
{
if (!theFactory.Unregister())
{
return E_FAIL;
}
return NOERROR;
}
HRESULT CAutoApp::GetClassObject(REFCLSID rclsid, REFIID riid, LPVOID * ppv)
{
if (rclsid == CLSID_AutoExtension)
{
if (riid == IID_IClassFactory ||
riid == IID_IUnknown)
{
*ppv = (IUnknown *)&theFactory;
theFactory.AddRef();
return NOERROR;
}
else
{
return E_NOINTERFACE;
}
}
else if (rclsid == CLSID_AutoUIObject)
{
if (riid == IID_IClassFactory ||
riid == IID_IUnknown)
{
*ppv = (IUnknown *)&theUIFactory;
theUIFactory.m_pNameSpaceFactory = &theFactory;
theUIFactory.AddRef();
return NOERROR;
}
else
{
return E_NOINTERFACE;
}
}
else
{
return CLASS_E_CLASSNOTAVAILABLE;
}
}
CAutoApp theApp;
STDAPI DllRegisterServer()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
return NSEGetApp()->RegisterServer();
}
STDAPI DllUnregisterServer()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
return NSEGetApp()->UnRegisterServer();
}
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID * ppv)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState( ));
return NSEGetApp()->GetClassObject(rclsid, riid, ppv);
}
AutoFactory.h
This file is generated by the wizard.
#if !defined(AFX_AUTOFACTORY_H__BC1CB79A_C6C6_4F64_92DD_F63E43DFC973__INCLUDED_)
#define AFX_AUTOFACTORY_H__BC1CB79A_C6C6_4F64_92DD_F63E43DFC973__INCLUDED_
#include "NameSpaceFactory.h"
#include "ShellUIObject.h"
class CAutoFactory : public CNameSpaceFactory
{
public:
virtual CNameSpaceExtension *CreateExtension();
virtual CShellUIObject *CreateUIObject();
};
extern CAutoFactory theFactory;
extern CUIObjectFactory theUIFactory;
#endif // !defined(AFX_AUTOFACTORY_H__BC1CB79A_C6C6_4F64_92DD_F63E43DFC973__INCLUDED_)
AutoFactory.cpp
This file is generated by the wizard.
#include "stdafx.h"
#include "AutoFactory.h"
#include "AutoExtension.h"
#include "AutoItem.h"
#include "AutoUIObject.h"
CNameSpaceExtension *CAutoFactory::CreateExtension()
{
return new CAutoExtension;
}
CShellUIObject *CAutoFactory::CreateUIObject()
{
return new CAutoUIObject(NULL, 0, NULL, NULL);
}
CAutoFactory theFactory;
CUIObjectFactory theUIFactory;
stdafx.h
This file is generated by the wizard.
// 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__2AA5DC84_494F_4F39_8C39_50B1087741D1__INCLUDED_) #define AFX_STDAFX_H__2AA5DC84_494F_4F39_8C39_50B1087741D1__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers #include// MFC core and standard components #include // MFC extensions #ifndef _AFX_NO_OLE_SUPPORT #include // MFC OLE classes #include // MFC OLE dialog classes #include // MFC Automation classes #endif // _AFX_NO_OLE_SUPPORT #ifndef _AFX_NO_DB_SUPPORT #include // MFC ODBC database classes #endif // _AFX_NO_DB_SUPPORT #ifndef _AFX_NO_DAO_SUPPORT #include // MFC DAO database classes #endif // _AFX_NO_DAO_SUPPORT #include // MFC support for Internet Explorer 4 Common Controls #ifndef _AFX_NO_AFXCMN_SUPPORT #include // MFC support for Windows Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT #include #include "shlext.h" #include "windefs.h" //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_STDAFX_H__2AA5DC84_494F_4F39_8C39_50B1087741D1__INCLUDED_)
stdafx.cpp
This file is generated by the wizard.
#include "stdafx.h"
resource.h
This file is generated by the wizard.
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by root.rc
//
#define IDM_EXPLORE 1
#define IDM_OPEN 2
#define IDM_PROPERTIES 3
#define IDM_DELETE 4
#define IDM_RENAME 5
#define IDM_FIND 6
#define IDM_COPY 7
#define IDI_FOLDER 20036
#define IDI_FOLDER_OPEN 20037
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 20038
#define _APS_NEXT_COMMAND_VALUE 32772
#define _APS_NEXT_CONTROL_VALUE 20023
#define _APS_NEXT_SYMED_VALUE 20000
#endif
#endif
Auto.rc
This file is generated by the wizard.
//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\\Auto.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
"#include ""afxres.rc"" // Standard components\r\n"
"#endif\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "Comments", "Generated with NSELib AppWizard\0"
VALUE "CompanyName", "\0"
VALUE "FileDescription", "Auto\0"
VALUE "FileVersion", "1, 0, 0, 0\0"
VALUE "InternalName", "Auto\0"
VALUE "LegalCopyright", "Copyright (C) 2003\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "Auto.dll\0"
VALUE "PrivateBuild", "\0"
VALUE "ProductName", "Auto\0"
VALUE "ProductVersion", "1, 0, 0, 0\0"
VALUE "SpecialBuild", "\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_FOLDER ICON DISCARDABLE "res\\folder_shell32.ico"
IDI_FOLDER_OPEN ICON DISCARDABLE "res\\folderop_shell32.ico"
#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\Auto.rc2" // non-Microsoft Visual C++ edited resources
#include "afxres.rc" // Standard components
#endif
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
Auto.def
This file is generated by the wizard.
; Auto.def : Declares the module parameters for the DLL.
LIBRARY "Auto"
DESCRIPTION 'Auto Windows Dynamic Link Library'
EXPORTS
; Explicit exports can go here
DllCanUnloadNow @1 PRIVATE
DllGetClassObject @2 PRIVATE
DllRegisterServer @3 PRIVATE
DllUnregisterServer @4 PRIVATE














