diff options
-rw-r--r-- | .cvsignore | 1 | ||||
-rw-r--r-- | FontInfo.cpp | 325 | ||||
-rw-r--r-- | FontInfo.h | 111 | ||||
-rw-r--r-- | FontInfo.rgs | 24 | ||||
-rw-r--r-- | StdAfx.cpp | 12 | ||||
-rw-r--r-- | StdAfx.h | 35 | ||||
-rw-r--r-- | TTF.h | 67 | ||||
-rw-r--r-- | TtfInfo Client/FontInfo.frm | 321 | ||||
-rw-r--r-- | TtfInfo Client/FontInfo.vbp | 37 | ||||
-rw-r--r-- | TtfInfo Client/FontInfo.vbw | 2 | ||||
-rw-r--r-- | TtfInfo Client/FontView.frm | 78 | ||||
-rw-r--r-- | TtfInfo Client/FontView.frx | bin | 0 -> 201 bytes | |||
-rw-r--r-- | TtfInfo.cpp | 73 | ||||
-rw-r--r-- | TtfInfo.def | 9 | ||||
-rw-r--r-- | TtfInfo.dsp | 437 | ||||
-rw-r--r-- | TtfInfo.dsw | 29 | ||||
-rw-r--r-- | TtfInfo.h | 556 | ||||
-rw-r--r-- | TtfInfo.idl | 54 | ||||
-rw-r--r-- | TtfInfo.rc | 134 | ||||
-rw-r--r-- | TtfInfops.def | 11 | ||||
-rw-r--r-- | TtfInfops.mk | 14 | ||||
-rw-r--r-- | dlldata.c | 38 | ||||
-rw-r--r-- | resource.h | 23 |
23 files changed, 2391 insertions, 0 deletions
diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..3afc713 --- /dev/null +++ b/.cvsignore @@ -0,0 +1 @@ +ReleaseMinSize
\ No newline at end of file diff --git a/FontInfo.cpp b/FontInfo.cpp new file mode 100644 index 0000000..beed324 --- /dev/null +++ b/FontInfo.cpp @@ -0,0 +1,325 @@ +// FontInfo.cpp : Implementation of CFontInfo +#include "stdafx.h" +#include "TtfInfo.h" +#include "FontInfo.h" + +///////////////////////////////////////////////////////////////////////////// +// CFontInfo +LPCTSTR CFontInfo::m_strFontsKey = NULL; + +STDMETHODIMP CFontInfo::InterfaceSupportsErrorInfo(REFIID riid) +{ + static const IID* arr[] = + { + &IID_ITrueTypeFontInfo, + }; + for ( int i = 0; i < sizeof( arr ) / sizeof( arr[0] ); i++ ) + { + if ( InlineIsEqualGUID( *arr[i], riid ) ) + return S_OK; + } + return S_FALSE; +} + +STDMETHODIMP CFontInfo::get__FileName(BSTR * pVal) +{ + *pVal = m_bstrFileName.copy(); + return S_OK; +} + +STDMETHODIMP CFontInfo::put__FileName(BSTR newVal) +{ + using namespace std; + + Initialize(); + + try + { + m_bstrFileName = _bstr_t(newVal).copy(); + } + catch (_com_error Err) + { + m_bstrFileName = ""; + return Err.Error(); + } + + const int BUFFER_SIZE = 512; + const int MAX_TABLES = 40; + + wchar_t namebuf[BUFFER_SIZE]; + unsigned short numNames; + unsigned int cTables; + sfnt_OffsetTable OffsetTable; + sfnt_DirectoryEntry Table; + sfnt_NamingTable NamingTable; + sfnt_NameRecord NameRecord; + streampos curseek; + + try + { + + USES_CONVERSION; + ifstream TtfFile( W2CA( newVal ), ios_base::in | ios_base::binary ); + + if ( !TtfFile.is_open() ) + { + m_bstrFileName = ""; + return AtlReportError( CLSID_FontInfo, IDERR_FileOpen, GUID_NULL, E_FAIL, _Module.GetResourceInstance() ); + } + + TtfFile.read( reinterpret_cast<char*>( &OffsetTable ), sizeof( OffsetTable ) - sizeof( sfnt_DirectoryEntry ) ); + cTables = (int) SWAPW( OffsetTable.numOffsets ); + + for (int i = 0; i < cTables and i < MAX_TABLES; i++) + { + TtfFile.read( reinterpret_cast<char*>( &Table ), sizeof( Table ) ); + + if (Table.tag == tag_NamingTable) + { + TtfFile.seekg( SWAPL( Table.offset ) ); + TtfFile.read( reinterpret_cast<char*>( &NamingTable ), + sizeof( NamingTable ) ); + numNames = SWAPW( NamingTable.count ); + + while ( numNames-- ) + { + TtfFile.read ( reinterpret_cast<char*>( &NameRecord ), + sizeof( NameRecord ) ); + + curseek = TtfFile.tellg(); + + if ( SWAPW( NameRecord.platformID ) == TTF::Microsoft ) + { + TtfFile.seekg( SWAPW( NameRecord.offset ) + + SWAPW( NamingTable.stringOffset ) + + SWAPL( Table.offset ) ); + TtfFile.read( reinterpret_cast<char*>( &namebuf ), + min(SWAPW(NameRecord.length), BUFFER_SIZE) ); + namebuf[SWAPW( NameRecord.length ) / sizeof( wchar_t ) ] = L'\0'; + + for (int i = 0; i < BUFFER_SIZE and i < SWAPW( NameRecord.length ) / sizeof( wchar_t ); i++) + namebuf[i] = SWAPW( namebuf[i] ); + + TtfFile.seekg( curseek ); + + switch ( SWAPW( NameRecord.nameID ) ) + { + case TTF::Copyright: + m_bstrCopyright = namebuf; + break; + case TTF::Family: + m_bstrFamily = namebuf; + break; + case TTF::ID: + m_bstrID = namebuf; + break; + case TTF::Name: + m_bstrName = namebuf; + break; + case TTF::PostscriptName: + m_bstrPostscriptName = namebuf; + break; + case TTF::Subfamily: + m_bstrSubfamily = namebuf; + break; + case TTF::Trademark: + m_bstrTrademark = namebuf; + break; + case TTF::Version: + m_bstrVersion = namebuf; + break; + default: + break; + } + + } // if ( SWAPW( NameRecord.platformID ) == TTF::Microsoft + + } // while ( numNames-- ) + + } // if (Table.tag == tag_NamingTable) + + } // for (int i = 0; i < cTables and i < 40; i++) + + } + catch(...) + { + return E_UNEXPECTED; + } + + return S_OK; +} + +STDMETHODIMP CFontInfo::get_FileName(BSTR * pVal) +{ + return get__FileName(pVal); +} + +STDMETHODIMP CFontInfo::put_FileName(BSTR newVal) +{ + return put__FileName(newVal); +} + +STDMETHODIMP CFontInfo::get_Copyright(BSTR * pVal) +{ + *pVal = m_bstrCopyright.copy(); + return S_OK; +} + +STDMETHODIMP CFontInfo::get_Family(BSTR * pVal) +{ + *pVal = m_bstrFamily.copy(); + return S_OK; +} + +STDMETHODIMP CFontInfo::get_ID(BSTR * pVal) +{ + *pVal = m_bstrID.copy(); + return S_OK; +} + +STDMETHODIMP CFontInfo::get_Name(BSTR * pVal) +{ + *pVal = m_bstrName.copy(); + return S_OK; +} + +STDMETHODIMP CFontInfo::get_PostscriptName(BSTR * pVal) +{ + *pVal = m_bstrPostscriptName.copy(); + return S_OK; +} + +STDMETHODIMP CFontInfo::get_Subfamily(BSTR * pVal) +{ + *pVal = m_bstrSubfamily.copy(); + return S_OK; +} + +STDMETHODIMP CFontInfo::get_Trademark(BSTR * pVal) +{ + *pVal = m_bstrTrademark.copy(); + return S_OK; +} + +STDMETHODIMP CFontInfo::get_Version(BSTR * pVal) +{ + *pVal = m_bstrVersion.copy(); + return S_OK; +} + +STDMETHODIMP CFontInfo::get_RegisteredFileName(BSTR * pVal) +{ + CRegKey reg; + LONG lRet = 0; + + lRet = OpenFontsKey( reg, KEY_READ ); + // We'll only return an error in the event that we can't open + // the Fonts key, any other registry errors will result in an + // empty RegisteredFileName string + if ( ERROR_SUCCESS != lRet ) + return HRESULT_FROM_WIN32( lRet ); + + // First get the size + DWORD dwSize = 0; + lRet = reg.QueryValue( NULL, GetRegistryFontName(), &dwSize ); + + if ( 0 == dwSize ) + { + *pVal = _bstr_t("").copy(); + return S_OK; + } + + LPTSTR strFileName = new TCHAR [dwSize]; + lRet = reg.QueryValue( strFileName, GetRegistryFontName(), &dwSize ); + + if ( ERROR_SUCCESS != lRet) + *pVal = _bstr_t("").copy(); + else + *pVal = _bstr_t(strFileName).copy(); + + delete [] strFileName; + return S_OK; +} + +STDMETHODIMP CFontInfo::GetFontsDirectory(BSTR * pVal) +{ + LPITEMIDLIST pIDL = NULL; + HRESULT hRes = SHGetSpecialFolderLocation( NULL, CSIDL_FONTS, &pIDL ); + + if ( SUCCEEDED( hRes ) ) + { + TCHAR pszPath [MAX_PATH] = {0}; + BOOL bSuccess = SHGetPathFromIDList( pIDL, pszPath ); + CoTaskMemFree( pIDL ); + if ( bSuccess ) + { + *pVal = _bstr_t( pszPath ).copy(); + return S_OK; + } + else + hRes = E_FAIL; + } + + return AtlReportError( CLSID_FontInfo, IDERR_GetFontsDirectory, GUID_NULL, hRes, _Module.GetResourceInstance() ); +} + +STDMETHODIMP CFontInfo::Install(VARIANT_BOOL bPermanent) +{ + if ( _bstr_t("") == m_bstrFileName ) + return AtlReportError( CLSID_FontInfo, + IDERR_NoFileName, GUID_NULL, E_FAIL, _Module.GetResourceInstance() ); + + if ( VARIANT_TRUE == bPermanent ) + { + // It's up to the user to check whether this font is already installed + CRegKey reg; + LONG lRet = 0; + + lRet = OpenFontsKey( reg, KEY_WRITE ); + if ( ERROR_SUCCESS != lRet ) + return AtlReportError( CLSID_FontInfo, + IDERR_OpenFontsKey, GUID_NULL, HRESULT_FROM_WIN32( lRet ), _Module.GetResourceInstance() ); + + lRet = reg.SetValue( m_bstrFileName, GetRegistryFontName() ); + if ( ERROR_SUCCESS != lRet ) + return AtlReportError( CLSID_FontInfo, + IDERR_Install, GUID_NULL, HRESULT_FROM_WIN32( lRet ), _Module.GetResourceInstance() ); + + } + + int ret = AddFontResource( m_bstrFileName ); + ::SendMessage( HWND_BROADCAST, WM_FONTCHANGE, 0, 0 ); + + return S_OK; +} + +STDMETHODIMP CFontInfo::Uninstall(VARIANT_BOOL bPermanent) +{ + if ( _bstr_t("") == m_bstrFileName ) + return AtlReportError( CLSID_FontInfo, + IDERR_NoFileName, GUID_NULL, E_FAIL, _Module.GetResourceInstance() ); + + if ( VARIANT_TRUE == bPermanent ) + { + // It's up to the user to ensure that they really + // want to remove the font before calling this method + CRegKey reg; + LONG lRet = 0; + + lRet = OpenFontsKey(reg, KEY_WRITE ); + if ( ERROR_SUCCESS != lRet ) + return AtlReportError( CLSID_FontInfo, + IDERR_OpenFontsKey, GUID_NULL, HRESULT_FROM_WIN32( lRet ), _Module.GetResourceInstance() ); + + lRet = reg.DeleteValue( GetRegistryFontName() ); + if ( ERROR_SUCCESS != lRet ) + return AtlReportError( CLSID_FontInfo, + IDERR_Uninstall, GUID_NULL, HRESULT_FROM_WIN32( lRet ), _Module.GetResourceInstance() ); + + } + + int ret = RemoveFontResource( m_bstrFileName ); + ::SendMessage( HWND_BROADCAST, WM_FONTCHANGE, 0, 0 ); + + return S_OK; +} diff --git a/FontInfo.h b/FontInfo.h new file mode 100644 index 0000000..7385c33 --- /dev/null +++ b/FontInfo.h @@ -0,0 +1,111 @@ +// FontInfo.h : Declaration of the CFontInfo + +#ifndef __FONTINFO_H_ +#define __FONTINFO_H_ + +#include "resource.h" // main symbols + +///////////////////////////////////////////////////////////////////////////// +// CFontInfo +class ATL_NO_VTABLE CFontInfo : + public CComObjectRootEx<CComSingleThreadModel>, + public CComCoClass<CFontInfo, &CLSID_FontInfo>, + public ISupportErrorInfo, + public IDispatchImpl<ITrueTypeFontInfo, &IID_ITrueTypeFontInfo, &LIBID_TtfInfoLib> +{ +public: + CFontInfo() + { + OSVERSIONINFO info = {0}; + info.dwOSVersionInfoSize = sizeof( OSVERSIONINFO ); + GetVersionEx( &info ); + + if ( VER_PLATFORM_WIN32_NT == info.dwPlatformId ) + m_strFontsKey = _T("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Fonts"); + else + m_strFontsKey = _T("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Fonts"); + + Initialize(); + } + +DECLARE_REGISTRY_RESOURCEID(IDR_FONTINFO) + +BEGIN_COM_MAP(CFontInfo) + COM_INTERFACE_ENTRY(ITrueTypeFontInfo) + COM_INTERFACE_ENTRY(IDispatch) + COM_INTERFACE_ENTRY(ISupportErrorInfo) +END_COM_MAP() + +// Attributes +protected: + _bstr_t m_bstrFileName; + _bstr_t m_bstrCopyright; + _bstr_t m_bstrFamily; + _bstr_t m_bstrID; + _bstr_t m_bstrName; + _bstr_t m_bstrPostscriptName; + _bstr_t m_bstrSubfamily; + _bstr_t m_bstrTrademark; + _bstr_t m_bstrVersion; + static LPCTSTR m_strFontsKey; + +// Inline helpers +public: + inline void Initialize(); + inline _bstr_t GetRegistryFontName() const; + inline static LONG OpenFontsKey( CRegKey& reg, REGSAM samDesired = KEY_ALL_ACCESS ); + + +// ISupportsErrorInfo +public: + STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); + +// ITrueTypeFontInfo +public: + STDMETHOD(Uninstall)(/*[in, optional]*/ VARIANT_BOOL bPermanent); + STDMETHOD(Install)(/*[in, optional]*/ VARIANT_BOOL bPermanent); + STDMETHOD(GetFontsDirectory)(/*[out, retval]*/ BSTR* pVal); + STDMETHOD(get_RegisteredFileName)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(get_Version)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(get_Trademark)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(get_Subfamily)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(get_PostscriptName)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(get_Name)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(get_ID)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(get_Family)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(get_Copyright)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(get_FileName)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(put_FileName)(/*[in]*/ BSTR newVal); + STDMETHOD(get__FileName)(/*[out, retval]*/ BSTR *pVal); + STDMETHOD(put__FileName)(/*[in]*/ BSTR newVal); +}; + +/////////////////////////////////////////////////////////////////////////////////// +// Inline Helpers +/////////////////////////////////////////////////////////////////////////////////// + +inline void CFontInfo::Initialize() +{ + m_bstrFileName = ""; + m_bstrCopyright = ""; + m_bstrFamily = ""; + m_bstrID = ""; + m_bstrName = ""; + m_bstrPostscriptName = ""; + m_bstrSubfamily = ""; + m_bstrTrademark = ""; + m_bstrVersion = ""; +} + +inline _bstr_t CFontInfo::GetRegistryFontName() const +{ + return m_bstrName + _T(" (TrueType)"); +} + +inline LONG CFontInfo::OpenFontsKey( CRegKey& reg, REGSAM samDesired /* = KEY_ALL_ACCESS */ ) +{ + return reg.Open( HKEY_LOCAL_MACHINE, m_strFontsKey, samDesired ); +} + + +#endif //__FONTINFO_H_ diff --git a/FontInfo.rgs b/FontInfo.rgs new file mode 100644 index 0000000..c390f0e --- /dev/null +++ b/FontInfo.rgs @@ -0,0 +1,24 @@ +HKCR
+{
+ FontInfo.FontInfo.1 = s 'FontInfo Class'
+ {
+ CLSID = s '{F6CC491E-26B2-11D1-ACED-204C4F4F5020}'
+ }
+ FontInfo.FontInfo = s 'FontInfo Class'
+ {
+ CurVer = s 'FontInfo.FontInfo.1'
+ }
+ NoRemove CLSID
+ {
+ ForceRemove {F6CC491E-26B2-11D1-ACED-204C4F4F5020} = s 'FontInfo Class'
+ {
+ ProgID = s 'FontInfo.FontInfo.1'
+ VersionIndependentProgID = s 'FontInfo.FontInfo'
+ ForceRemove 'Programmable'
+ InprocServer32 = s '%MODULE%'
+ {
+ val ThreadingModel = s 'Apartment'
+ }
+ }
+ }
+}
diff --git a/StdAfx.cpp b/StdAfx.cpp new file mode 100644 index 0000000..a5eea17 --- /dev/null +++ b/StdAfx.cpp @@ -0,0 +1,12 @@ +// stdafx.cpp : source file that includes just the standard includes +// stdafx.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" + +#ifdef _ATL_STATIC_REGISTRY +#include <statreg.h> +#include <statreg.cpp> +#endif + +#include <atlimpl.cpp> diff --git a/StdAfx.h b/StdAfx.h new file mode 100644 index 0000000..eb774c3 --- /dev/null +++ b/StdAfx.h @@ -0,0 +1,35 @@ +// 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__F6CC4914_26B2_11D1_ACED_204C4F4F5020__INCLUDED_) +#define AFX_STDAFX_H__F6CC4914_26B2_11D1_ACED_204C4F4F5020__INCLUDED_ + +#if _MSC_VER >= 1000 +#pragma once +#endif // _MSC_VER >= 1000 + +#define STRICT + + +#define _WIN32_WINNT 0x0400 +#define _ATL_APARTMENT_THREADED + + +#include <atlbase.h> +//You may derive a class from CComModule and use it if you want to override +//something, but do not change the name of _Module +extern CComModule _Module; +#include <atlcom.h> + + +#include <shlobj.h> // Windows shell +#include <comdef.h> // Compiler COM suport +#include <fstream> // Standard file streams +#include <iso646.h> // ISO standard logic keywords +#include "TTF.h" // TrueType header + +//{{AFX_INSERT_LOCATION}} +// Microsoft Developer Studio will insert additional declarations immediately before the previous line. + +#endif // !defined(AFX_STDAFX_H__F6CC4914_26B2_11D1_ACED_204C4F4F5020__INCLUDED) @@ -0,0 +1,67 @@ +// TTF.h +////////////////////////////////////////////////////////////////////////////////////////////////////// +// Macros for TrueType portability +#define FS_2BYTE(p) ( ((unsigned short)((p)[0]) << 8) | (p)[1]) +#define FS_4BYTE(p) ( FS_2BYTE((p)+2) | ( (FS_2BYTE(p)+0L) << 16) ) +#define SWAPW(a) ((short) FS_2BYTE( (unsigned char *)(&a) )) +#define SWAPL(a) ((long) FS_4BYTE( (unsigned char *)(&a) )) + + +typedef short int16; +typedef unsigned short uint16; +typedef long int32; +typedef unsigned long uint32; +typedef long sfnt_TableTag; + +typedef struct { + uint16 platformID; + uint16 specificID; + uint16 languageID; + uint16 nameID; + uint16 length; + uint16 offset; +} sfnt_NameRecord; + +typedef struct { + uint16 format; + uint16 count; + uint16 stringOffset; +} sfnt_NamingTable; + +typedef struct { + sfnt_TableTag tag; + uint32 checkSum; + uint32 offset; + uint32 length; +} sfnt_DirectoryEntry; + +typedef struct { + int32 version; /* 0x10000 (1.0) */ + uint16 numOffsets; /* number of tables */ + uint16 searchRange; /* (max2 <= numOffsets)*16 */ + uint16 entrySelector; /* log2 (max2 <= numOffsets) */ + uint16 rangeShift; /* numOffsets*16-searchRange*/ + sfnt_DirectoryEntry table[1]; /* table[numOffsets] */ +} sfnt_OffsetTable; + +#define OFFSETTABLESIZE 12 /* not including any entries */ +#define tag_NamingTable 0x656d616e /* 'name' */ + +namespace TTF +{ + enum + { AppleUnicode = 0, + Macintosh = 1, + ISO = 2, + Microsoft = 3 }; + + enum + { Copyright = 0, + Family = 1, + Subfamily = 2, + ID = 3, + Name = 4, + Version = 5, + PostscriptName = 6, + Trademark = 7 }; +};
\ No newline at end of file diff --git a/TtfInfo Client/FontInfo.frm b/TtfInfo Client/FontInfo.frm new file mode 100644 index 0000000..5a788f8 --- /dev/null +++ b/TtfInfo Client/FontInfo.frm @@ -0,0 +1,321 @@ +VERSION 5.00
+Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.1#0"; "COMDLG32.OCX"
+Begin VB.Form frmFontInfo
+ BorderStyle = 1 'Fixed Single
+ Caption = "FontInfo"
+ ClientHeight = 5490
+ ClientLeft = 45
+ ClientTop = 330
+ ClientWidth = 7620
+ LinkTopic = "Form1"
+ MaxButton = 0 'False
+ ScaleHeight = 5490
+ ScaleWidth = 7620
+ StartUpPosition = 3 'Windows Default
+ Begin VB.CommandButton cmdView
+ Caption = "View..."
+ Height = 375
+ Left = 6240
+ TabIndex = 11
+ Top = 720
+ Width = 1215
+ End
+ Begin VB.CommandButton cmdUninstall
+ Caption = "Uninstall"
+ Height = 375
+ Left = 6240
+ TabIndex = 10
+ Top = 1920
+ Width = 1215
+ End
+ Begin VB.CommandButton cmdInstall
+ Caption = "Install"
+ Height = 375
+ Left = 6240
+ TabIndex = 9
+ Top = 1320
+ Width = 1215
+ End
+ Begin MSComDlg.CommonDialog cdlFont
+ Left = 6960
+ Top = 2520
+ _ExtentX = 847
+ _ExtentY = 847
+ _Version = 327680
+ CancelError = -1 'True
+ DefaultExt = "*.ttf"
+ DialogTitle = "Choose A Font"
+ Filter = "TrueType Fonts (*.ttf) | *.ttf"
+ InitDir = "C:\"
+ End
+ Begin VB.CommandButton cmdSelect
+ Caption = "Select..."
+ Height = 375
+ Left = 6240
+ TabIndex = 0
+ Top = 120
+ Width = 1215
+ End
+ Begin VB.Label Label8
+ AutoSize = -1 'True
+ Caption = "Copyright:"
+ Height = 195
+ Left = 240
+ TabIndex = 19
+ Top = 4440
+ Width = 705
+ End
+ Begin VB.Label Label7
+ AutoSize = -1 'True
+ Caption = "Version:"
+ Height = 195
+ Left = 240
+ TabIndex = 18
+ Top = 600
+ Width = 570
+ End
+ Begin VB.Label Label6
+ AutoSize = -1 'True
+ Caption = "Trademark:"
+ Height = 195
+ Left = 240
+ TabIndex = 17
+ Top = 3600
+ Width = 810
+ End
+ Begin VB.Label Label5
+ AutoSize = -1 'True
+ Caption = "Postscript Name:"
+ Height = 195
+ Left = 240
+ TabIndex = 16
+ Top = 3120
+ Width = 1200
+ End
+ Begin VB.Label Label4
+ AutoSize = -1 'True
+ Caption = "ID:"
+ Height = 195
+ Left = 240
+ TabIndex = 15
+ Top = 2640
+ Width = 210
+ End
+ Begin VB.Label Label3
+ AutoSize = -1 'True
+ Caption = "Subfamily:"
+ Height = 195
+ Left = 240
+ TabIndex = 14
+ Top = 2160
+ Width = 720
+ End
+ Begin VB.Label Label2
+ AutoSize = -1 'True
+ Caption = "Family:"
+ Height = 195
+ Left = 240
+ TabIndex = 13
+ Top = 1680
+ Width = 480
+ End
+ Begin VB.Label Label1
+ AutoSize = -1 'True
+ Caption = "Name:"
+ Height = 195
+ Left = 240
+ TabIndex = 12
+ Top = 120
+ Width = 465
+ End
+ Begin VB.Label lblVersion
+ BackColor = &H80000005&
+ Caption = "lblVersion"
+ ForeColor = &H80000008&
+ Height = 915
+ Left = 1560
+ TabIndex = 8
+ Top = 600
+ Width = 4455
+ End
+ Begin VB.Label lblTrademark
+ BackColor = &H80000005&
+ Caption = "lblTrademark"
+ ForeColor = &H80000008&
+ Height = 615
+ Left = 1560
+ TabIndex = 7
+ Top = 3600
+ Width = 4455
+ End
+ Begin VB.Label lblSubfamily
+ BackColor = &H80000005&
+ Caption = "lblSubfamily"
+ ForeColor = &H80000008&
+ Height = 255
+ Left = 1560
+ TabIndex = 6
+ Top = 2160
+ Width = 4455
+ End
+ Begin VB.Label lblPostscriptName
+ BackColor = &H80000005&
+ Caption = "lblPostscriptName"
+ ForeColor = &H80000008&
+ Height = 255
+ Left = 1560
+ TabIndex = 5
+ Top = 3120
+ Width = 4455
+ End
+ Begin VB.Label lblName
+ BackColor = &H80000005&
+ Caption = "lblName"
+ ForeColor = &H80000008&
+ Height = 255
+ Left = 1560
+ TabIndex = 4
+ Top = 120
+ Width = 4455
+ End
+ Begin VB.Label lblID
+ BackColor = &H80000005&
+ Caption = "lblID"
+ ForeColor = &H80000008&
+ Height = 255
+ Left = 1560
+ TabIndex = 3
+ Top = 2640
+ Width = 4455
+ End
+ Begin VB.Label lblFamily
+ BackColor = &H80000005&
+ Caption = "lblFamily"
+ ForeColor = &H80000008&
+ Height = 255
+ Left = 1560
+ TabIndex = 2
+ Top = 1680
+ Width = 4455
+ End
+ Begin VB.Label lblCopyright
+ BackColor = &H80000005&
+ Caption = "lblCopyright"
+ ForeColor = &H80000008&
+ Height = 915
+ Left = 1560
+ TabIndex = 1
+ Top = 4440
+ Width = 4455
+ End
+End
+Attribute VB_Name = "frmFontInfo"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = False
+Option Explicit
+Private f As TtfInfoLib.FontInfo
+
+Private Sub cmdInstall_Click()
+ On Error GoTo err_Unexpected
+
+ If f = "" Then
+ MsgBox "Pick a font first"
+ Exit Sub
+ End If
+
+ If f.RegisteredFileName <> "" Then
+ MsgBox "A font with this name is already installed" & _
+ vbCrLf & f.RegisteredFileName
+ Exit Sub
+ End If
+
+ f.Install True
+ Exit Sub
+
+err_Unexpected:
+ MsgBox Err.Description
+End Sub
+
+Private Sub cmdSelect_Click()
+ On Error GoTo err_Cancel
+ cdlFont.ShowOpen
+
+ On Error GoTo err_Create
+ Set f = New TtfInfoLib.FontInfo
+
+ On Error GoTo err_FileName
+ ' FileName is the default property
+ f = cdlFont.filename
+
+ On Error GoTo err_Unexpected
+ With f
+ Caption = "FontInfo - " & .filename
+
+ lblCopyright = .Copyright
+ lblFamily = .Family
+ lblID = .ID
+ lblName = .Name
+ lblPostscriptName = .PostscriptName
+ lblSubfamily = .Subfamily
+ lblTrademark = .Trademark
+ lblVersion = .Version
+ End With
+
+ Exit Sub
+
+
+err_Create:
+err_FileName:
+err_Unexpected:
+ MsgBox Err.Description
+err_Cancel:
+ Exit Sub
+End Sub
+
+Private Sub cmdUninstall_Click()
+ On Error GoTo err_Unexpected
+
+ If f.RegisteredFileName = "" Then
+ MsgBox "This font is not installed"
+ Exit Sub
+ End If
+
+ If f.RegisteredFileName <> f.filename Then
+ MsgBox "The font that you have picked is installed, but a different file has been registered" _
+ & vbCrLf & f.RegisteredFileName
+ Exit Sub
+ End If
+
+ f.Uninstall True
+ Exit Sub
+
+err_Unexpected:
+ MsgBox Err.Description
+End Sub
+
+Private Sub cmdView_Click()
+ On Error GoTo err_Unexpected
+
+ Dim frm As New frmFontView
+ With frm
+ Set .DisplayFont = f
+ .Show
+ End With
+ Exit Sub
+
+err_Unexpected:
+ MsgBox Err.Description
+End Sub
+
+Private Sub Form_Load()
+ On Error GoTo err_Unexpected
+
+ Set f = New TtfInfoLib.FontInfo
+ cdlFont.InitDir = f.GetFontsDirectory()
+ Exit Sub
+
+err_Unexpected:
+ MsgBox Err.Description
+End Sub
diff --git a/TtfInfo Client/FontInfo.vbp b/TtfInfo Client/FontInfo.vbp new file mode 100644 index 0000000..d7f6fb2 --- /dev/null +++ b/TtfInfo Client/FontInfo.vbp @@ -0,0 +1,37 @@ +Type=Exe
+Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\..\..\..\..\System32\STDOLE2.TLB#OLE Automation
+Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.1#0; COMDLG32.OCX
+Reference=*\G{F6CC4910-26B2-11D1-ACED-204C4F4F5020}#1.0#0#\\GONZO\Desktop\TTF\TtfInfo\Debug\TtfInfo.dll#TtfInfo 1.0 Type Library
+Form=FontInfo.frm
+Form=FontView.frm
+Object={3B7C8863-D78F-101B-B9B5-04021C009402}#1.1#0; RICHTX32.OCX
+IconForm="frmFontInfo"
+Startup="frmFontInfo"
+HelpFile=""
+Title="FontInfo"
+ExeName32="FontInfo.exe"
+Path32="..\..\..\..\..\Administrator\Desktop\TTF\TtfInfo\VBClient"
+Command32=""
+Name="FontInfo"
+HelpContextID="0"
+CompatibleMode="0"
+MajorVer=1
+MinorVer=0
+RevisionVer=0
+AutoIncrementVer=0
+ServerSupportFiles=0
+VersionCompanyName="Gonzo ESM"
+CompilationType=0
+OptimizationType=0
+FavorPentiumPro(tm)=-1
+CodeViewDebugInfo=-1
+NoAliasing=0
+BoundsCheck=0
+OverflowCheck=0
+FlPointCheck=0
+FDIVCheck=0
+UnroundedFP=0
+StartMode=0
+Unattended=0
+ThreadPerObject=0
+MaxNumberOfThreads=1
diff --git a/TtfInfo Client/FontInfo.vbw b/TtfInfo Client/FontInfo.vbw new file mode 100644 index 0000000..fe614c7 --- /dev/null +++ b/TtfInfo Client/FontInfo.vbw @@ -0,0 +1,2 @@ +frmFontInfo = 160, 185, 685, 625, C, 17, 12, 551, 626, C
+frmFontView = 88, 88, 613, 528, , 44, 44, 569, 484,
diff --git a/TtfInfo Client/FontView.frm b/TtfInfo Client/FontView.frm new file mode 100644 index 0000000..f62c912 --- /dev/null +++ b/TtfInfo Client/FontView.frm @@ -0,0 +1,78 @@ +VERSION 5.00
+Object = "{3B7C8863-D78F-101B-B9B5-04021C009402}#1.1#0"; "RICHTX32.OCX"
+Begin VB.Form frmFontView
+ BorderStyle = 1 'Fixed Single
+ Caption = "FontView"
+ ClientHeight = 4410
+ ClientLeft = 45
+ ClientTop = 330
+ ClientWidth = 7500
+ LinkTopic = "Form1"
+ MaxButton = 0 'False
+ ScaleHeight = 4410
+ ScaleWidth = 7500
+ StartUpPosition = 3 'Windows Default
+ Begin RichTextLib.RichTextBox rtbFontView
+ Height = 4095
+ Left = 120
+ TabIndex = 0
+ Top = 120
+ Width = 7215
+ _ExtentX = 12726
+ _ExtentY = 7223
+ _Version = 327680
+ ReadOnly = -1 'True
+ OLEDragMode = 0
+ OLEDropMode = 0
+ TextRTF = $"FontView.frx":0000
+ End
+End
+Attribute VB_Name = "frmFontView"
+Attribute VB_GlobalNameSpace = False
+Attribute VB_Creatable = False
+Attribute VB_PredeclaredId = True
+Attribute VB_Exposed = False
+Option Explicit
+Public DisplayFont As TtfInfoLib.FontInfo
+
+Private Sub Form_Load()
+On Error GoTo err_Unexpected
+ ' Temporarily install the font
+ DisplayFont.Install False
+ Caption = "FontView - " & DisplayFont.filename
+
+ With rtbFontView
+ .Text = ""
+
+ .SelFontName = "Times"
+ .SelFontSize = 20
+ .SelText = DisplayFont.Name & vbCrLf
+
+ .SelFontSize = 10
+ .SelText = "Version: " & DisplayFont.Version & vbCrLf
+
+ .SelFontName = DisplayFont.Name
+ .SelFontSize = 24
+ .SelText = "abcdefghijklmnopqrstuvwxyz" & vbCrLf
+ .SelText = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" & vbCrLf
+ .SelText = "1234567890 !'£$%^&*();':.,"
+
+ .SelStart = 0
+ End With
+ Exit Sub
+
+err_Unexpected:
+ MsgBox Err.Description
+End Sub
+
+Private Sub Form_Unload(Cancel As Integer)
+On Error GoTo err_Unexpected
+ ' Uninstall the font
+ ' (This has no effect if the font is permanently installed)
+ DisplayFont.Uninstall False
+ Exit Sub
+
+err_Unexpected:
+ MsgBox Err.Description
+End Sub
+
diff --git a/TtfInfo Client/FontView.frx b/TtfInfo Client/FontView.frx Binary files differnew file mode 100644 index 0000000..523de71 --- /dev/null +++ b/TtfInfo Client/FontView.frx diff --git a/TtfInfo.cpp b/TtfInfo.cpp new file mode 100644 index 0000000..e45d364 --- /dev/null +++ b/TtfInfo.cpp @@ -0,0 +1,73 @@ +// TtfInfo.cpp : Implementation of DLL Exports. + + +// Note: Proxy/Stub Information +// To build a separate proxy/stub DLL, +// run nmake -f TtfInfops.mk in the project directory. + +#include "stdafx.h" +#include "resource.h" +#include "initguid.h" +#include "TtfInfo.h" + +#include "TtfInfo_i.c" +#include "FontInfo.h" + + +CComModule _Module; + +BEGIN_OBJECT_MAP(ObjectMap) + OBJECT_ENTRY(CLSID_FontInfo, CFontInfo) +END_OBJECT_MAP() + +///////////////////////////////////////////////////////////////////////////// +// DLL Entry Point + +extern "C" +BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/) +{ + if (dwReason == DLL_PROCESS_ATTACH) + { + _Module.Init(ObjectMap, hInstance); + DisableThreadLibraryCalls(hInstance); + } + else if (dwReason == DLL_PROCESS_DETACH) + _Module.Term(); + return TRUE; // ok +} + +///////////////////////////////////////////////////////////////////////////// +// Used to determine whether the DLL can be unloaded by OLE + +STDAPI DllCanUnloadNow(void) +{ + return (_Module.GetLockCount()==0) ? S_OK : S_FALSE; +} + +///////////////////////////////////////////////////////////////////////////// +// Returns a class factory to create an object of the requested type + +STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv) +{ + return _Module.GetClassObject(rclsid, riid, ppv); +} + +///////////////////////////////////////////////////////////////////////////// +// DllRegisterServer - Adds entries to the system registry + +STDAPI DllRegisterServer(void) +{ + // registers object, typelib and all interfaces in typelib + return _Module.RegisterServer(TRUE); +} + +///////////////////////////////////////////////////////////////////////////// +// DllUnregisterServer - Removes entries from the system registry + +STDAPI DllUnregisterServer(void) +{ + _Module.UnregisterServer(); + return S_OK; +} + + diff --git a/TtfInfo.def b/TtfInfo.def new file mode 100644 index 0000000..023ba8e --- /dev/null +++ b/TtfInfo.def @@ -0,0 +1,9 @@ +; TtfInfo.def : Declares the module parameters.
+
+LIBRARY "TtfInfo.DLL"
+
+EXPORTS
+ DllCanUnloadNow @1 PRIVATE
+ DllGetClassObject @2 PRIVATE
+ DllRegisterServer @3 PRIVATE
+ DllUnregisterServer @4 PRIVATE
diff --git a/TtfInfo.dsp b/TtfInfo.dsp new file mode 100644 index 0000000..f9de504 --- /dev/null +++ b/TtfInfo.dsp @@ -0,0 +1,437 @@ +# Microsoft Developer Studio Project File - Name="TtfInfo" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 + +CFG=TtfInfo - 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 "TtfInfo.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 "TtfInfo.mak" CFG="TtfInfo - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "TtfInfo - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "TtfInfo - Win32 Unicode Debug" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "TtfInfo - Win32 Release MinSize" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "TtfInfo - Win32 Release MinDependency" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "TtfInfo - Win32 Unicode Release MinSize" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE "TtfInfo - Win32 Unicode Release MinDependency" (based on "Win32 (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "TtfInfo - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# Begin Custom Build - Registering ActiveX Control... +OutDir=.\Debug +TargetPath=.\Debug\TtfInfo.dll +InputPath=.\Debug\TtfInfo.dll +SOURCE="$(InputPath)" + +"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + regsvr32 /s /c "$(TargetPath)" + echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" + +# End Custom Build + +!ELSEIF "$(CFG)" == "TtfInfo - Win32 Unicode Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "DebugU" +# PROP BASE Intermediate_Dir "DebugU" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "DebugU" +# PROP Intermediate_Dir "DebugU" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept +# Begin Custom Build - Registering ActiveX Control... +OutDir=.\DebugU +TargetPath=.\DebugU\TtfInfo.dll +InputPath=.\DebugU\TtfInfo.dll +SOURCE="$(InputPath)" + +"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + regsvr32 /s /c "$(TargetPath)" + echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" + +# End Custom Build + +!ELSEIF "$(CFG)" == "TtfInfo - Win32 Release MinSize" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ReleaseMinSize" +# PROP BASE Intermediate_Dir "ReleaseMinSize" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ReleaseMinSize" +# PROP Intermediate_Dir "ReleaseMinSize" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_ATL_DLL" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_ATL_DLL" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# Begin Custom Build - Registering ActiveX Control... +OutDir=.\ReleaseMinSize +TargetPath=.\ReleaseMinSize\TtfInfo.dll +InputPath=.\ReleaseMinSize\TtfInfo.dll +SOURCE="$(InputPath)" + +"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + regsvr32 /s /c "$(TargetPath)" + echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" + +# End Custom Build + +!ELSEIF "$(CFG)" == "TtfInfo - Win32 Release MinDependency" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ReleaseMinDependency" +# PROP BASE Intermediate_Dir "ReleaseMinDependency" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ReleaseMinDependency" +# PROP Intermediate_Dir "ReleaseMinDependency" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_ATL_STATIC_REGISTRY" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_ATL_STATIC_REGISTRY" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# Begin Custom Build - Registering ActiveX Control... +OutDir=.\ReleaseMinDependency +TargetPath=.\ReleaseMinDependency\TtfInfo.dll +InputPath=.\ReleaseMinDependency\TtfInfo.dll +SOURCE="$(InputPath)" + +"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + regsvr32 /s /c "$(TargetPath)" + echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" + +# End Custom Build + +!ELSEIF "$(CFG)" == "TtfInfo - Win32 Unicode Release MinSize" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ReleaseUMinSize" +# PROP BASE Intermediate_Dir "ReleaseUMinSize" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ReleaseUMinSize" +# PROP Intermediate_Dir "ReleaseUMinSize" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /D "_ATL_DLL" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /D "_ATL_DLL" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# Begin Custom Build - Registering ActiveX Control... +OutDir=.\ReleaseUMinSize +TargetPath=.\ReleaseUMinSize\TtfInfo.dll +InputPath=.\ReleaseUMinSize\TtfInfo.dll +SOURCE="$(InputPath)" + +"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + regsvr32 /s /c "$(TargetPath)" + echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" + +# End Custom Build + +!ELSEIF "$(CFG)" == "TtfInfo - Win32 Unicode Release MinDependency" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ReleaseUMinDependency" +# PROP BASE Intermediate_Dir "ReleaseUMinDependency" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ReleaseUMinDependency" +# PROP Intermediate_Dir "ReleaseUMinDependency" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /D "_ATL_STATIC_REGISTRY" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD CPP /nologo /MT /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "_UNICODE" /D "_ATL_STATIC_REGISTRY" /D "_ATL_MIN_CRT" /Yu"stdafx.h" /FD /c +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 +# Begin Custom Build - Registering ActiveX Control... +OutDir=.\ReleaseUMinDependency +TargetPath=.\ReleaseUMinDependency\TtfInfo.dll +InputPath=.\ReleaseUMinDependency\TtfInfo.dll +SOURCE="$(InputPath)" + +"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + regsvr32 /s /c "$(TargetPath)" + echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" + +# End Custom Build + +!ENDIF + +# Begin Target + +# Name "TtfInfo - Win32 Debug" +# Name "TtfInfo - Win32 Unicode Debug" +# Name "TtfInfo - Win32 Release MinSize" +# Name "TtfInfo - Win32 Release MinDependency" +# Name "TtfInfo - Win32 Unicode Release MinSize" +# Name "TtfInfo - Win32 Unicode Release MinDependency" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\FontInfo.cpp +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.cpp +# ADD CPP /Yc"stdafx.h" +# End Source File +# Begin Source File + +SOURCE=.\TtfInfo.cpp +# End Source File +# Begin Source File + +SOURCE=.\TtfInfo.def +# End Source File +# Begin Source File + +SOURCE=.\TtfInfo.idl + +!IF "$(CFG)" == "TtfInfo - Win32 Debug" + +# PROP Ignore_Default_Tool 1 +# Begin Custom Build - Performing MIDL step +InputPath=.\TtfInfo.idl + +BuildCmds= \ + midl /Oicf /h "TtfInfo.h" /iid "TtfInfo_i.c" "TtfInfo.idl" + +".\TtfInfo.tlb" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +".\TtfInfo.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +".\TtfInfo_i.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +!ELSEIF "$(CFG)" == "TtfInfo - Win32 Unicode Debug" + +# PROP Ignore_Default_Tool 1 +# Begin Custom Build - Performing MIDL step +InputPath=.\TtfInfo.idl + +BuildCmds= \ + midl /Oicf /h "TtfInfo.h" /iid "TtfInfo_i.c" "TtfInfo.idl" + +".\TtfInfo.tlb" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +".\TtfInfo.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +".\TtfInfo_i.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +!ELSEIF "$(CFG)" == "TtfInfo - Win32 Release MinSize" + +# PROP Ignore_Default_Tool 1 +# Begin Custom Build - Performing MIDL step +InputPath=.\TtfInfo.idl + +BuildCmds= \ + midl /Oicf /h "TtfInfo.h" /iid "TtfInfo_i.c" "TtfInfo.idl" + +".\TtfInfo.tlb" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +".\TtfInfo.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +".\TtfInfo_i.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +!ELSEIF "$(CFG)" == "TtfInfo - Win32 Release MinDependency" + +# PROP Ignore_Default_Tool 1 +# Begin Custom Build - Performing MIDL step +InputPath=.\TtfInfo.idl + +BuildCmds= \ + midl /Oicf /h "TtfInfo.h" /iid "TtfInfo_i.c" "TtfInfo.idl" + +".\TtfInfo.tlb" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +".\TtfInfo.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +".\TtfInfo_i.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +!ELSEIF "$(CFG)" == "TtfInfo - Win32 Unicode Release MinSize" + +# PROP Ignore_Default_Tool 1 +# Begin Custom Build - Performing MIDL step +InputPath=.\TtfInfo.idl + +BuildCmds= \ + midl /Oicf /h "TtfInfo.h" /iid "TtfInfo_i.c" "TtfInfo.idl" + +".\TtfInfo.tlb" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +".\TtfInfo.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +".\TtfInfo_i.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +!ELSEIF "$(CFG)" == "TtfInfo - Win32 Unicode Release MinDependency" + +# PROP Ignore_Default_Tool 1 +# Begin Custom Build - Performing MIDL step +InputPath=.\TtfInfo.idl + +BuildCmds= \ + midl /Oicf /h "TtfInfo.h" /iid "TtfInfo_i.c" "TtfInfo.idl" + +".\TtfInfo.tlb" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +".\TtfInfo.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +".\TtfInfo_i.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=.\TtfInfo.rc +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=.\FontInfo.h +# End Source File +# Begin Source File + +SOURCE=.\Resource.h +# End Source File +# Begin Source File + +SOURCE=.\StdAfx.h +# End Source File +# Begin Source File + +SOURCE=.\TTF.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# End Group +# Begin Source File + +SOURCE=.\FontInfo.rgs +# End Source File +# End Target +# End Project diff --git a/TtfInfo.dsw b/TtfInfo.dsw new file mode 100644 index 0000000..b8add7c --- /dev/null +++ b/TtfInfo.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "TtfInfo"=".\TtfInfo.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/TtfInfo.h b/TtfInfo.h new file mode 100644 index 0000000..132d85d --- /dev/null +++ b/TtfInfo.h @@ -0,0 +1,556 @@ +/* this ALWAYS GENERATED file contains the definitions for the interfaces */ + + +/* File created by MIDL compiler version 3.01.75 */ +/* at Sat Sep 06 15:15:40 1997 + */ +/* Compiler settings for TtfInfo.idl: + Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext + error checks: none +*/ +//@@MIDL_FILE_HEADING( ) +#include "rpc.h" +#include "rpcndr.h" +#ifndef COM_NO_WINDOWS_H +#include "windows.h" +#include "ole2.h" +#endif /*COM_NO_WINDOWS_H*/ + +#ifndef __TtfInfo_h__ +#define __TtfInfo_h__ + +#ifdef __cplusplus +extern "C"{ +#endif + +/* Forward Declarations */ + +#ifndef __ITrueTypeFontInfo_FWD_DEFINED__ +#define __ITrueTypeFontInfo_FWD_DEFINED__ +typedef interface ITrueTypeFontInfo ITrueTypeFontInfo; +#endif /* __ITrueTypeFontInfo_FWD_DEFINED__ */ + + +#ifndef __FontInfo_FWD_DEFINED__ +#define __FontInfo_FWD_DEFINED__ + +#ifdef __cplusplus +typedef class FontInfo FontInfo; +#else +typedef struct FontInfo FontInfo; +#endif /* __cplusplus */ + +#endif /* __FontInfo_FWD_DEFINED__ */ + + +/* header files for imported files */ +#include "oaidl.h" +#include "ocidl.h" + +void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t); +void __RPC_USER MIDL_user_free( void __RPC_FAR * ); + +#ifndef __ITrueTypeFontInfo_INTERFACE_DEFINED__ +#define __ITrueTypeFontInfo_INTERFACE_DEFINED__ + +/**************************************** + * Generated header for interface: ITrueTypeFontInfo + * at Sat Sep 06 15:15:40 1997 + * using MIDL 3.01.75 + ****************************************/ +/* [unique][helpstring][dual][uuid][object] */ + + + +EXTERN_C const IID IID_ITrueTypeFontInfo; + +#if defined(__cplusplus) && !defined(CINTERFACE) + + interface DECLSPEC_UUID("F6CC491D-26B2-11D1-ACED-204C4F4F5020") + ITrueTypeFontInfo : public IDispatch + { + public: + virtual /* [helpstring][id][propget][hidden] */ HRESULT STDMETHODCALLTYPE get__FileName( + /* [retval][out] */ BSTR __RPC_FAR *pVal) = 0; + + virtual /* [helpstring][id][propput][hidden] */ HRESULT STDMETHODCALLTYPE put__FileName( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FileName( + /* [retval][out] */ BSTR __RPC_FAR *pVal) = 0; + + virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FileName( + /* [in] */ BSTR newVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Copyright( + /* [retval][out] */ BSTR __RPC_FAR *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Family( + /* [retval][out] */ BSTR __RPC_FAR *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ID( + /* [retval][out] */ BSTR __RPC_FAR *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name( + /* [retval][out] */ BSTR __RPC_FAR *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_PostscriptName( + /* [retval][out] */ BSTR __RPC_FAR *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Subfamily( + /* [retval][out] */ BSTR __RPC_FAR *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Trademark( + /* [retval][out] */ BSTR __RPC_FAR *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Version( + /* [retval][out] */ BSTR __RPC_FAR *pVal) = 0; + + virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RegisteredFileName( + /* [retval][out] */ BSTR __RPC_FAR *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFontsDirectory( + /* [retval][out] */ BSTR __RPC_FAR *pVal) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Install( + /* [optional][in] */ VARIANT_BOOL bPermanent) = 0; + + virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Uninstall( + /* [optional][in] */ VARIANT_BOOL bPermanent) = 0; + + }; + +#else /* C style interface */ + + typedef struct ITrueTypeFontInfoVtbl + { + BEGIN_INTERFACE + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( + ITrueTypeFontInfo __RPC_FAR * This); + + ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( + ITrueTypeFontInfo __RPC_FAR * This); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfoCount )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [out] */ UINT __RPC_FAR *pctinfo); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTypeInfo )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [in] */ UINT iTInfo, + /* [in] */ LCID lcid, + /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo); + + HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetIDsOfNames )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [in] */ REFIID riid, + /* [size_is][in] */ LPOLESTR __RPC_FAR *rgszNames, + /* [in] */ UINT cNames, + /* [in] */ LCID lcid, + /* [size_is][out] */ DISPID __RPC_FAR *rgDispId); + + /* [local] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Invoke )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [in] */ DISPID dispIdMember, + /* [in] */ REFIID riid, + /* [in] */ LCID lcid, + /* [in] */ WORD wFlags, + /* [out][in] */ DISPPARAMS __RPC_FAR *pDispParams, + /* [out] */ VARIANT __RPC_FAR *pVarResult, + /* [out] */ EXCEPINFO __RPC_FAR *pExcepInfo, + /* [out] */ UINT __RPC_FAR *puArgErr); + + /* [helpstring][id][propget][hidden] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get__FileName )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + /* [helpstring][id][propput][hidden] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put__FileName )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_FileName )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *put_FileName )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [in] */ BSTR newVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Copyright )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Family )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_ID )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Name )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_PostscriptName )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Subfamily )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Trademark )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_Version )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *get_RegisteredFileName )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetFontsDirectory )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Install )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [optional][in] */ VARIANT_BOOL bPermanent); + + /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Uninstall )( + ITrueTypeFontInfo __RPC_FAR * This, + /* [optional][in] */ VARIANT_BOOL bPermanent); + + END_INTERFACE + } ITrueTypeFontInfoVtbl; + + interface ITrueTypeFontInfo + { + CONST_VTBL struct ITrueTypeFontInfoVtbl __RPC_FAR *lpVtbl; + }; + + + +#ifdef COBJMACROS + + +#define ITrueTypeFontInfo_QueryInterface(This,riid,ppvObject) \ + (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) + +#define ITrueTypeFontInfo_AddRef(This) \ + (This)->lpVtbl -> AddRef(This) + +#define ITrueTypeFontInfo_Release(This) \ + (This)->lpVtbl -> Release(This) + + +#define ITrueTypeFontInfo_GetTypeInfoCount(This,pctinfo) \ + (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) + +#define ITrueTypeFontInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ + (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) + +#define ITrueTypeFontInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ + (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) + +#define ITrueTypeFontInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ + (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) + + +#define ITrueTypeFontInfo_get__FileName(This,pVal) \ + (This)->lpVtbl -> get__FileName(This,pVal) + +#define ITrueTypeFontInfo_put__FileName(This,newVal) \ + (This)->lpVtbl -> put__FileName(This,newVal) + +#define ITrueTypeFontInfo_get_FileName(This,pVal) \ + (This)->lpVtbl -> get_FileName(This,pVal) + +#define ITrueTypeFontInfo_put_FileName(This,newVal) \ + (This)->lpVtbl -> put_FileName(This,newVal) + +#define ITrueTypeFontInfo_get_Copyright(This,pVal) \ + (This)->lpVtbl -> get_Copyright(This,pVal) + +#define ITrueTypeFontInfo_get_Family(This,pVal) \ + (This)->lpVtbl -> get_Family(This,pVal) + +#define ITrueTypeFontInfo_get_ID(This,pVal) \ + (This)->lpVtbl -> get_ID(This,pVal) + +#define ITrueTypeFontInfo_get_Name(This,pVal) \ + (This)->lpVtbl -> get_Name(This,pVal) + +#define ITrueTypeFontInfo_get_PostscriptName(This,pVal) \ + (This)->lpVtbl -> get_PostscriptName(This,pVal) + +#define ITrueTypeFontInfo_get_Subfamily(This,pVal) \ + (This)->lpVtbl -> get_Subfamily(This,pVal) + +#define ITrueTypeFontInfo_get_Trademark(This,pVal) \ + (This)->lpVtbl -> get_Trademark(This,pVal) + +#define ITrueTypeFontInfo_get_Version(This,pVal) \ + (This)->lpVtbl -> get_Version(This,pVal) + +#define ITrueTypeFontInfo_get_RegisteredFileName(This,pVal) \ + (This)->lpVtbl -> get_RegisteredFileName(This,pVal) + +#define ITrueTypeFontInfo_GetFontsDirectory(This,pVal) \ + (This)->lpVtbl -> GetFontsDirectory(This,pVal) + +#define ITrueTypeFontInfo_Install(This,bPermanent) \ + (This)->lpVtbl -> Install(This,bPermanent) + +#define ITrueTypeFontInfo_Uninstall(This,bPermanent) \ + (This)->lpVtbl -> Uninstall(This,bPermanent) + +#endif /* COBJMACROS */ + + +#endif /* C style interface */ + + + +/* [helpstring][id][propget][hidden] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_get__FileName_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + +void __RPC_STUB ITrueTypeFontInfo_get__FileName_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id][propput][hidden] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_put__FileName_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [in] */ BSTR newVal); + + +void __RPC_STUB ITrueTypeFontInfo_put__FileName_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_get_FileName_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + +void __RPC_STUB ITrueTypeFontInfo_get_FileName_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_put_FileName_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [in] */ BSTR newVal); + + +void __RPC_STUB ITrueTypeFontInfo_put_FileName_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_get_Copyright_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + +void __RPC_STUB ITrueTypeFontInfo_get_Copyright_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_get_Family_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + +void __RPC_STUB ITrueTypeFontInfo_get_Family_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_get_ID_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + +void __RPC_STUB ITrueTypeFontInfo_get_ID_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_get_Name_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + +void __RPC_STUB ITrueTypeFontInfo_get_Name_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_get_PostscriptName_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + +void __RPC_STUB ITrueTypeFontInfo_get_PostscriptName_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_get_Subfamily_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + +void __RPC_STUB ITrueTypeFontInfo_get_Subfamily_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_get_Trademark_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + +void __RPC_STUB ITrueTypeFontInfo_get_Trademark_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_get_Version_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + +void __RPC_STUB ITrueTypeFontInfo_get_Version_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_get_RegisteredFileName_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + +void __RPC_STUB ITrueTypeFontInfo_get_RegisteredFileName_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_GetFontsDirectory_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [retval][out] */ BSTR __RPC_FAR *pVal); + + +void __RPC_STUB ITrueTypeFontInfo_GetFontsDirectory_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_Install_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [optional][in] */ VARIANT_BOOL bPermanent); + + +void __RPC_STUB ITrueTypeFontInfo_Install_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + +/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ITrueTypeFontInfo_Uninstall_Proxy( + ITrueTypeFontInfo __RPC_FAR * This, + /* [optional][in] */ VARIANT_BOOL bPermanent); + + +void __RPC_STUB ITrueTypeFontInfo_Uninstall_Stub( + IRpcStubBuffer *This, + IRpcChannelBuffer *_pRpcChannelBuffer, + PRPC_MESSAGE _pRpcMessage, + DWORD *_pdwStubPhase); + + + +#endif /* __ITrueTypeFontInfo_INTERFACE_DEFINED__ */ + + + +#ifndef __TtfInfoLib_LIBRARY_DEFINED__ +#define __TtfInfoLib_LIBRARY_DEFINED__ + +/**************************************** + * Generated header for library: TtfInfoLib + * at Sat Sep 06 15:15:40 1997 + * using MIDL 3.01.75 + ****************************************/ +/* [helpstring][version][uuid] */ + + + +EXTERN_C const IID LIBID_TtfInfoLib; + +#ifdef __cplusplus +EXTERN_C const CLSID CLSID_FontInfo; + +class DECLSPEC_UUID("F6CC491E-26B2-11D1-ACED-204C4F4F5020") +FontInfo; +#endif +#endif /* __TtfInfoLib_LIBRARY_DEFINED__ */ + +/* Additional Prototypes for ALL interfaces */ + +unsigned long __RPC_USER BSTR_UserSize( unsigned long __RPC_FAR *, unsigned long , BSTR __RPC_FAR * ); +unsigned char __RPC_FAR * __RPC_USER BSTR_UserMarshal( unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * ); +unsigned char __RPC_FAR * __RPC_USER BSTR_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * ); +void __RPC_USER BSTR_UserFree( unsigned long __RPC_FAR *, BSTR __RPC_FAR * ); + +/* end of Additional Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/TtfInfo.idl b/TtfInfo.idl new file mode 100644 index 0000000..f682a4d --- /dev/null +++ b/TtfInfo.idl @@ -0,0 +1,54 @@ +// TtfInfo.idl : IDL source for TtfInfo.dll +// + +// This file will be processed by the MIDL tool to +// produce the type library (TtfInfo.tlb) and marshalling code. + +import "oaidl.idl"; +import "ocidl.idl"; + + [ + object, + uuid(F6CC491D-26B2-11D1-ACED-204C4F4F5020), + dual, + helpstring("ITrueTypeFontInfo Interface"), + pointer_default(unique) + ] + interface ITrueTypeFontInfo : IDispatch + { + [hidden, propget, id(0), helpstring("default property")] HRESULT _FileName([out, retval] BSTR *pVal); + [hidden, propput, id(0), helpstring("default property")] HRESULT _FileName([in] BSTR newVal); + [propget, id(1), helpstring("property FileName")] HRESULT FileName([out, retval] BSTR *pVal); + [propput, id(1), helpstring("property FileName")] HRESULT FileName([in] BSTR newVal); + [propget, id(2), helpstring("property Copyright")] HRESULT Copyright([out, retval] BSTR *pVal); + [propget, id(3), helpstring("property Family")] HRESULT Family([out, retval] BSTR *pVal); + [propget, id(4), helpstring("property ID")] HRESULT ID([out, retval] BSTR *pVal); + [propget, id(5), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal); + [propget, id(6), helpstring("property PostscriptName")] HRESULT PostscriptName([out, retval] BSTR *pVal); + [propget, id(7), helpstring("property Subfamily")] HRESULT Subfamily([out, retval] BSTR *pVal); + [propget, id(8), helpstring("property Trademark")] HRESULT Trademark([out, retval] BSTR *pVal); + [propget, id(9), helpstring("property Version")] HRESULT Version([out, retval] BSTR *pVal); + [propget, id(10), helpstring("property RegisteredFileName")] HRESULT RegisteredFileName([out, retval] BSTR *pVal); + [id(11), helpstring("method GetFontsDirectory")] HRESULT GetFontsDirectory([out, retval] BSTR* pVal); + [id(12), helpstring("method Install")] HRESULT Install([in, optional] VARIANT_BOOL bPermanent); + [id(13), helpstring("method Uninstall")] HRESULT Uninstall([in, optional] VARIANT_BOOL bPermanent); + }; +[ + uuid(F6CC4910-26B2-11D1-ACED-204C4F4F5020), + version(1.0), + helpstring("TtfInfo 1.0 Type Library") +] +library TtfInfoLib +{ + importlib("stdole32.tlb"); + importlib("stdole2.tlb"); + + [ + uuid(F6CC491E-26B2-11D1-ACED-204C4F4F5020), + helpstring("FontInfo Class") + ] + coclass FontInfo + { + [default] interface ITrueTypeFontInfo; + }; +}; diff --git a/TtfInfo.rc b/TtfInfo.rc new file mode 100644 index 0000000..92ad5c8 --- /dev/null +++ b/TtfInfo.rc @@ -0,0 +1,134 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.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 ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "1 TYPELIB ""TtfInfo.tlb""\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +#ifndef _MAC +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904B0" + BEGIN + VALUE "CompanyName", "\0" + VALUE "FileDescription", "TtfInfo Module\0" + VALUE "FileVersion", "1, 0, 0, 1\0" + VALUE "InternalName", "TTFINFO\0" + VALUE "LegalCopyright", "Copyright 1997\0" + VALUE "OriginalFilename", "TTFINFO.DLL\0" + VALUE "ProductName", "TtfInfo Module\0" + VALUE "ProductVersion", "1, 0, 0, 1\0" + VALUE "OLESelfRegister", "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END + +#endif // !_MAC + + +///////////////////////////////////////////////////////////////////////////// +// +// REGISTRY +// + +IDR_FONTINFO REGISTRY DISCARDABLE "FontInfo.rgs" + +///////////////////////////////////////////////////////////////////////////// +// +// String Table +// + +STRINGTABLE DISCARDABLE +BEGIN + IDS_PROJNAME "TtfInfo" +END + +STRINGTABLE DISCARDABLE +BEGIN + IDERR_GetFontsDirectory "Testing123" + IDERR_OpenFontsKey "IDERR_OpenFontsKey" + IDERR_Install "Install failed" + IDERR_Uninstall "Uninstall failed" + IDERR_FileOpen "Couldn't open file" + IDERR_NoFileName "Blank file name. Set the filename first!!!!!!" +END + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// +1 TYPELIB "TtfInfo.tlb" + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/TtfInfops.def b/TtfInfops.def new file mode 100644 index 0000000..f48208c --- /dev/null +++ b/TtfInfops.def @@ -0,0 +1,11 @@ +
+LIBRARY "TtfInfoPS"
+
+DESCRIPTION 'Proxy/Stub DLL'
+
+EXPORTS
+ DllGetClassObject @1 PRIVATE
+ DllCanUnloadNow @2 PRIVATE
+ GetProxyDllInfo @3 PRIVATE
+ DllRegisterServer @4 PRIVATE
+ DllUnregisterServer @5 PRIVATE
diff --git a/TtfInfops.mk b/TtfInfops.mk new file mode 100644 index 0000000..c2bbd2d --- /dev/null +++ b/TtfInfops.mk @@ -0,0 +1,14 @@ + +TtfInfops.dll: dlldata.obj TtfInfo_p.obj TtfInfo_i.obj + link /dll /out:TtfInfops.dll /def:TtfInfops.def /entry:DllMain dlldata.obj TtfInfo_p.obj TtfInfo_i.obj kernel32.lib rpcndr.lib rpcns4.lib rpcrt4.lib oleaut32.lib uuid.lib + +.c.obj: + cl /c /Ox /DWIN32 /D_WIN32_WINNT=0x0400 /DREGISTER_PROXY_DLL $< + +clean: + @del TtfInfops.dll + @del TtfInfops.lib + @del TtfInfops.exp + @del dlldata.obj + @del TtfInfo_p.obj + @del TtfInfo_i.obj diff --git a/dlldata.c b/dlldata.c new file mode 100644 index 0000000..fb08b20 --- /dev/null +++ b/dlldata.c @@ -0,0 +1,38 @@ +/********************************************************* + DllData file -- generated by MIDL compiler + + DO NOT ALTER THIS FILE + + This file is regenerated by MIDL on every IDL file compile. + + To completely reconstruct this file, delete it and rerun MIDL + on all the IDL files in this DLL, specifying this file for the + /dlldata command line option + +*********************************************************/ + +#define PROXY_DELEGATION + +#include <rpcproxy.h> + +#ifdef __cplusplus +extern "C" { +#endif + +EXTERN_PROXY_FILE( TtfInfo ) + + +PROXYFILE_LIST_START +/* Start of list */ + REFERENCE_PROXY_FILE( TtfInfo ), +/* End of list */ +PROXYFILE_LIST_END + + +DLLDATA_ROUTINES( aProxyFileList, GET_DLL_CLSID ) + +#ifdef __cplusplus +} /*extern "C" */ +#endif + +/* end of generated dlldata file */ diff --git a/resource.h b/resource.h new file mode 100644 index 0000000..495eb8f --- /dev/null +++ b/resource.h @@ -0,0 +1,23 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by TtfInfo.rc +// +#define IDS_PROJNAME 100 +#define IDR_FONTINFO 101 +#define IDERR_GetFontsDirectory 512 +#define IDERR_OpenFontsKey 513 +#define IDERR_Install 514 +#define IDERR_Uninstall 515 +#define IDERR_FileOpen 516 +#define IDERR_NoFileName 517 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 201 +#define _APS_NEXT_COMMAND_VALUE 32768 +#define _APS_NEXT_CONTROL_VALUE 201 +#define _APS_NEXT_SYMED_VALUE 102 +#endif +#endif |