mirror of
https://github.com/love2d/love-android.git
synced 2026-08-21 13:09:40 +02:00
added dependencies and build files (loosely inspired by Sebastian Dorda's love-native-android)
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
.lib & .def files to link an MSVC project against the standard DLL build with BCB.
|
||||
|
||||
Please note that this version is created for libmng 1.0.5, but should work with
|
||||
1.0.6 as there were no API changes between the two versions.
|
||||
|
||||
These files are courtesy of Alex Volkov. Here's what he had to say about it:
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
That reminds me, I remade the MSVC libmng.lib for linking to the
|
||||
bcb-generated dll. The .lib and its corresponding .def are attached. The
|
||||
.def I generated by simply dumping all the exports from the bcb .dll and
|
||||
later added the .def to the contrib/msvc/win32dll project. The .def is
|
||||
necessary for MSVC to name the imports correctly, otherwise it produces
|
||||
mangled symbol names. What is ironic is that it is not necessary to
|
||||
completely build the dll with msvc -- you need just the resulting .lib --
|
||||
but you still have to setup the entire project for building the dll because of
|
||||
the stdcall calling convention. The resulting .lib is not perfect -- the hints
|
||||
are all off, of course -- but it does the job. In any case, the win32 exes
|
||||
linked with the attached .lib in fact work with bcb-generated dll just fine. I
|
||||
know the building process can be somehow automated, but I have not had the time
|
||||
to work on that, and for me it was a one-shot deal.
|
||||
|
||||
Alex.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
@@ -0,0 +1,380 @@
|
||||
LIBRARY libmng
|
||||
EXPORTS
|
||||
jcopy_block_row
|
||||
jcopy_sample_rows
|
||||
jdiv_round_up
|
||||
jinit_1pass_quantizer
|
||||
jinit_2pass_quantizer
|
||||
jinit_c_coef_controller
|
||||
jinit_c_main_controller
|
||||
jinit_c_master_control
|
||||
jinit_c_prep_controller
|
||||
jinit_color_converter
|
||||
jinit_color_deconverter
|
||||
jinit_compress_master
|
||||
jinit_d_coef_controller
|
||||
jinit_d_main_controller
|
||||
jinit_d_post_controller
|
||||
jinit_downsampler
|
||||
jinit_forward_dct
|
||||
jinit_huff_decoder
|
||||
jinit_huff_encoder
|
||||
jinit_input_controller
|
||||
jinit_inverse_dct
|
||||
jinit_marker_reader
|
||||
jinit_marker_writer
|
||||
jinit_master_decompress
|
||||
jinit_memory_mgr
|
||||
jinit_merged_upsampler
|
||||
jinit_phuff_decoder
|
||||
jinit_phuff_encoder
|
||||
jinit_upsampler
|
||||
jpeg_CreateCompress
|
||||
jpeg_CreateDecompress
|
||||
jpeg_abort
|
||||
jpeg_abort_compress
|
||||
jpeg_abort_decompress
|
||||
jpeg_add_quant_table
|
||||
jpeg_alloc_huff_table
|
||||
jpeg_alloc_quant_table
|
||||
jpeg_calc_output_dimensions
|
||||
jpeg_consume_input
|
||||
jpeg_copy_critical_parameters
|
||||
jpeg_default_colorspace
|
||||
jpeg_destroy
|
||||
jpeg_destroy_compress
|
||||
jpeg_destroy_decompress
|
||||
jpeg_fdct_float
|
||||
jpeg_fdct_ifast
|
||||
jpeg_fdct_islow
|
||||
jpeg_fill_bit_buffer
|
||||
jpeg_finish_compress
|
||||
jpeg_finish_decompress
|
||||
jpeg_finish_output
|
||||
jpeg_free_large
|
||||
jpeg_free_small
|
||||
jpeg_gen_optimal_table
|
||||
jpeg_get_large
|
||||
jpeg_get_small
|
||||
jpeg_has_multiple_scans
|
||||
jpeg_huff_decode
|
||||
jpeg_save_markers
|
||||
jpeg_set_colorspace
|
||||
jpeg_set_defaults
|
||||
jpeg_set_linear_quality
|
||||
jpeg_set_marker_processor
|
||||
jpeg_set_quality
|
||||
jpeg_simple_progression
|
||||
jpeg_start_compress
|
||||
jpeg_start_decompress
|
||||
jpeg_start_output
|
||||
jpeg_std_error
|
||||
jpeg_stdio_dest
|
||||
jpeg_stdio_src
|
||||
jpeg_suppress_tables
|
||||
jpeg_write_coefficients
|
||||
jpeg_write_m_byte
|
||||
jpeg_write_m_header
|
||||
jpeg_write_marker
|
||||
jpeg_write_raw_data
|
||||
jpeg_write_scanlines
|
||||
jpeg_write_tables
|
||||
jround_up
|
||||
jzero_far
|
||||
mng_cleanup
|
||||
mng_copy_chunk
|
||||
mng_create
|
||||
mng_display
|
||||
mng_display_freeze
|
||||
mng_display_goframe
|
||||
mng_display_golayer
|
||||
mng_display_gotime
|
||||
mng_display_reset
|
||||
mng_display_resume
|
||||
mng_get_alphabitdepth
|
||||
mng_get_alphacompression
|
||||
mng_get_alphadepth
|
||||
mng_get_alphafilter
|
||||
mng_get_alphainterlace
|
||||
mng_get_bgcolor
|
||||
mng_get_bitdepth
|
||||
mng_get_bkgdstyle
|
||||
mng_get_cacheplayback
|
||||
mng_get_canvasstyle
|
||||
mng_get_colortype
|
||||
mng_get_compression
|
||||
mng_get_currentframe
|
||||
mng_get_currentlayer
|
||||
mng_get_currentplaytime
|
||||
mng_get_dfltimggamma
|
||||
mng_get_dfltimggammaint
|
||||
mng_get_displaygamma
|
||||
mng_get_displaygammaint
|
||||
mng_get_doprogressive
|
||||
mng_get_filter
|
||||
mng_get_framecount
|
||||
mng_get_imageheight
|
||||
mng_get_imagelevel
|
||||
mng_get_imagetype
|
||||
mng_get_imagewidth
|
||||
mng_get_interlace
|
||||
mng_get_jpeg_dctmethod
|
||||
mng_get_jpeg_maxjdat
|
||||
mng_get_jpeg_optimized
|
||||
mng_get_jpeg_progressive
|
||||
mng_get_jpeg_quality
|
||||
mng_get_jpeg_smoothing
|
||||
mng_get_lastbackchunk
|
||||
mng_get_lastseekname
|
||||
mng_get_layercount
|
||||
mng_get_maxcanvasheight
|
||||
mng_get_maxcanvaswidth
|
||||
mng_get_playtime
|
||||
mng_get_refreshpass
|
||||
mng_get_runtime
|
||||
mng_get_sectionbreaks
|
||||
mng_get_sigtype
|
||||
mng_get_simplicity
|
||||
mng_get_speed
|
||||
mng_get_srgb
|
||||
mng_get_starttime
|
||||
mng_get_storechunks
|
||||
mng_get_suspensionmode
|
||||
mng_get_ticks
|
||||
mng_get_totalframes
|
||||
mng_get_totallayers
|
||||
mng_get_totalplaytime
|
||||
mng_get_usebkgd
|
||||
mng_get_userdata
|
||||
mng_get_viewgamma
|
||||
mng_get_viewgammaint
|
||||
mng_get_zlib_level
|
||||
mng_get_zlib_maxidat
|
||||
mng_get_zlib_memlevel
|
||||
mng_get_zlib_method
|
||||
mng_get_zlib_strategy
|
||||
mng_get_zlib_windowbits
|
||||
mng_getcb_closestream
|
||||
mng_getcb_errorproc
|
||||
mng_getcb_getalphaline
|
||||
mng_getcb_getbkgdline
|
||||
mng_getcb_getcanvasline
|
||||
mng_getcb_gettickcount
|
||||
mng_getcb_memalloc
|
||||
mng_getcb_memfree
|
||||
mng_getcb_openstream
|
||||
mng_getcb_processheader
|
||||
mng_getcb_processneed
|
||||
mng_getcb_processsave
|
||||
mng_getcb_processseek
|
||||
mng_getcb_processterm
|
||||
mng_getcb_processtext
|
||||
mng_getcb_processunknown
|
||||
mng_getcb_readdata
|
||||
mng_getcb_refresh
|
||||
mng_getcb_settimer
|
||||
mng_getcb_writedata
|
||||
mng_getchunk_back
|
||||
mng_getchunk_basi
|
||||
mng_getchunk_bkgd
|
||||
mng_getchunk_chrm
|
||||
mng_getchunk_clip
|
||||
mng_getchunk_clon
|
||||
mng_getchunk_dbyk
|
||||
mng_getchunk_defi
|
||||
mng_getchunk_dhdr
|
||||
mng_getchunk_disc
|
||||
mng_getchunk_drop
|
||||
mng_getchunk_endl
|
||||
mng_getchunk_evnt
|
||||
mng_getchunk_evnt_entry
|
||||
mng_getchunk_expi
|
||||
mng_getchunk_fpri
|
||||
mng_getchunk_fram
|
||||
mng_getchunk_gama
|
||||
mng_getchunk_hist
|
||||
mng_getchunk_iccp
|
||||
mng_getchunk_idat
|
||||
mng_getchunk_ihdr
|
||||
mng_getchunk_itxt
|
||||
mng_getchunk_jdat
|
||||
mng_getchunk_jhdr
|
||||
mng_getchunk_loop
|
||||
mng_getchunk_magn
|
||||
mng_getchunk_mhdr
|
||||
mng_getchunk_move
|
||||
mng_getchunk_need
|
||||
mng_getchunk_ordr
|
||||
mng_getchunk_ordr_entry
|
||||
mng_getchunk_past
|
||||
mng_getchunk_past_src
|
||||
mng_getchunk_phyg
|
||||
mng_getchunk_phys
|
||||
mng_getchunk_plte
|
||||
mng_getchunk_pplt
|
||||
mng_getchunk_pplt_entry
|
||||
mng_getchunk_prom
|
||||
mng_getchunk_save
|
||||
mng_getchunk_save_entry
|
||||
mng_getchunk_sbit
|
||||
mng_getchunk_seek
|
||||
mng_getchunk_show
|
||||
mng_getchunk_splt
|
||||
mng_getchunk_srgb
|
||||
mng_getchunk_term
|
||||
mng_getchunk_text
|
||||
mng_getchunk_time
|
||||
mng_getchunk_trns
|
||||
mng_getchunk_unknown
|
||||
mng_getchunk_ztxt
|
||||
mng_getimgdata_chunk
|
||||
mng_getimgdata_chunkseq
|
||||
mng_getimgdata_seq
|
||||
mng_getlasterror
|
||||
mng_initialize
|
||||
mng_iterate_chunks
|
||||
mng_putchunk_back
|
||||
mng_putchunk_basi
|
||||
mng_putchunk_bkgd
|
||||
mng_putchunk_chrm
|
||||
mng_putchunk_clip
|
||||
mng_putchunk_clon
|
||||
mng_putchunk_dbyk
|
||||
mng_putchunk_defi
|
||||
mng_putchunk_dhdr
|
||||
mng_putchunk_disc
|
||||
mng_putchunk_drop
|
||||
mng_putchunk_endl
|
||||
mng_putchunk_evnt
|
||||
mng_putchunk_evnt_entry
|
||||
mng_putchunk_expi
|
||||
mng_putchunk_fpri
|
||||
mng_putchunk_fram
|
||||
mng_putchunk_gama
|
||||
mng_putchunk_hist
|
||||
mng_putchunk_iccp
|
||||
mng_putchunk_idat
|
||||
mng_putchunk_iend
|
||||
mng_putchunk_ihdr
|
||||
mng_putchunk_ipng
|
||||
mng_putchunk_itxt
|
||||
mng_putchunk_jdat
|
||||
mng_putchunk_jhdr
|
||||
mng_putchunk_jsep
|
||||
mng_putchunk_loop
|
||||
mng_putchunk_magn
|
||||
mng_putchunk_mend
|
||||
mng_putchunk_mhdr
|
||||
mng_putchunk_move
|
||||
mng_putchunk_need
|
||||
mng_putchunk_ordr
|
||||
mng_putchunk_ordr_entry
|
||||
mng_putchunk_past
|
||||
mng_putchunk_past_src
|
||||
mng_putchunk_phyg
|
||||
mng_putchunk_phys
|
||||
mng_putchunk_plte
|
||||
mng_putchunk_pplt
|
||||
mng_putchunk_pplt_entry
|
||||
mng_putchunk_prom
|
||||
mng_putchunk_save
|
||||
mng_putchunk_save_entry
|
||||
mng_putchunk_sbit
|
||||
mng_putchunk_seek
|
||||
mng_putchunk_show
|
||||
mng_putchunk_splt
|
||||
mng_putchunk_srgb
|
||||
mng_putchunk_term
|
||||
mng_putchunk_text
|
||||
mng_putchunk_time
|
||||
mng_putchunk_trns
|
||||
mng_putchunk_unknown
|
||||
mng_putchunk_ztxt
|
||||
mng_putimgdata_ihdr
|
||||
mng_putimgdata_jhdr
|
||||
mng_read
|
||||
mng_read_resume
|
||||
mng_readdisplay
|
||||
mng_reset
|
||||
mng_set_bgcolor
|
||||
mng_set_bkgdstyle
|
||||
mng_set_cacheplayback
|
||||
mng_set_canvasstyle
|
||||
mng_set_dfltimggamma
|
||||
mng_set_dfltimggammaint
|
||||
mng_set_displaygamma
|
||||
mng_set_displaygammaint
|
||||
mng_set_doprogressive
|
||||
mng_set_jpeg_dctmethod
|
||||
mng_set_jpeg_maxjdat
|
||||
mng_set_jpeg_optimized
|
||||
mng_set_jpeg_progressive
|
||||
mng_set_jpeg_quality
|
||||
mng_set_jpeg_smoothing
|
||||
mng_set_maxcanvasheight
|
||||
mng_set_maxcanvassize
|
||||
mng_set_maxcanvaswidth
|
||||
mng_set_outputprofile
|
||||
mng_set_outputprofile2
|
||||
mng_set_outputsrgb
|
||||
mng_set_sectionbreaks
|
||||
mng_set_speed
|
||||
mng_set_srgb
|
||||
mng_set_srgbimplicit
|
||||
mng_set_srgbprofile
|
||||
mng_set_srgbprofile2
|
||||
mng_set_storechunks
|
||||
mng_set_suspensionmode
|
||||
mng_set_usebkgd
|
||||
mng_set_userdata
|
||||
mng_set_viewgamma
|
||||
mng_set_viewgammaint
|
||||
mng_set_zlib_level
|
||||
mng_set_zlib_maxidat
|
||||
mng_set_zlib_memlevel
|
||||
mng_set_zlib_method
|
||||
mng_set_zlib_strategy
|
||||
mng_set_zlib_windowbits
|
||||
mng_setcb_closestream
|
||||
mng_setcb_errorproc
|
||||
mng_setcb_getalphaline
|
||||
mng_setcb_getbkgdline
|
||||
mng_setcb_getcanvasline
|
||||
mng_setcb_gettickcount
|
||||
mng_setcb_memalloc
|
||||
mng_setcb_memfree
|
||||
mng_setcb_openstream
|
||||
mng_setcb_processheader
|
||||
mng_setcb_processmend
|
||||
mng_setcb_processneed
|
||||
mng_setcb_processsave
|
||||
mng_setcb_processseek
|
||||
mng_setcb_processterm
|
||||
mng_setcb_processtext
|
||||
mng_setcb_processunknown
|
||||
mng_setcb_readdata
|
||||
mng_setcb_refresh
|
||||
mng_setcb_settimer
|
||||
mng_setcb_writedata
|
||||
mng_status_creating
|
||||
mng_status_displaying
|
||||
mng_status_dynamic
|
||||
mng_status_error
|
||||
mng_status_reading
|
||||
mng_status_running
|
||||
mng_status_runningevent
|
||||
mng_status_suspendbreak
|
||||
mng_status_timerbreak
|
||||
mng_status_writing
|
||||
mng_supports_func
|
||||
mng_trapevent
|
||||
mng_updatemngheader
|
||||
mng_updatemngsimplicity
|
||||
mng_version_beta
|
||||
mng_version_dll
|
||||
mng_version_major
|
||||
mng_version_minor
|
||||
mng_version_release
|
||||
mng_version_so
|
||||
mng_version_text
|
||||
mng_write
|
||||
Binary file not shown.
@@ -0,0 +1,37 @@
|
||||
########################################################################
|
||||
# This is a GNU makefile - tested on CYGWIN and Linux
|
||||
#
|
||||
# You may need to compile or install libmng before compiling this.
|
||||
# Libmng also requires zlib, jpeg and lcms
|
||||
#
|
||||
|
||||
TARGET = makemng
|
||||
# These flags are needed to get it to compile with libmng.dll on CYGWIN
|
||||
# CYGWINFLAGS = -DMNG_USE_DLL
|
||||
CYGWINFLAGS =
|
||||
MNGFLAGS = -I. -DMNG_SKIP_LCMS -DMNG_SKIP_IJG6B \
|
||||
-DMNG_SUPPORT_READ -DMNG_SUPPORT_WRITE -DMNG_SUPPORT_DISPLAY \
|
||||
-DMNG_ACCESS_CHUNKS
|
||||
|
||||
CC = gcc
|
||||
CFLAGS = -W -Wall -O0 # -g
|
||||
LIBS = -L/usr/local/lib -lmng -lm -lz -ljpeg -llcms
|
||||
LDFLAGS=
|
||||
|
||||
BINS = $(TARGET) $(TARGET).exe
|
||||
SRCS = makemng.c filelist.c
|
||||
OBJS = makemng.o filelist.o
|
||||
|
||||
.SUFFIXES: .c .o
|
||||
|
||||
.c.o:
|
||||
$(CC) -c $(CFLAGS) -o $@ $*.c $(MNGFLAGS) $(CYGWINFLAGS)
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
$(TARGET): $(OBJS)
|
||||
$(CC) -o $(TARGET) $(OBJS) $(LIBS) $(LDFLAGS)
|
||||
|
||||
clean:
|
||||
rm -f $(BINS) *.o
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
MAKEMNG - Jan 10, 2003
|
||||
|
||||
A simple MNG encoder. MAKEMNG takes a bunch of still frames (PNGs)
|
||||
as input, computes delta images and stuffs it all into an MNG, thus
|
||||
creating an animation.
|
||||
|
||||
You will need zlib to compile and run this app.
|
||||
The included Makefile should work on Linux and CYGWIN.
|
||||
The MSVC project will most likely need modifications for your
|
||||
environment.
|
||||
|
||||
usage: makemng [-v] [-f rate] [-r] [-s size] [-o outputfile] <png-in-mask>
|
||||
produces an MNG animation from a bunch of frame images
|
||||
options:
|
||||
-v : be verbose, explains things no human should know
|
||||
-f rate : sets the framerate; rate is 1..100 per second (default 5)
|
||||
-b : auto-select background frame (instead of frame0)
|
||||
-r : split delta frames into full rectangles only
|
||||
-s size : enable sector cleanup and set sector size (8..64)
|
||||
diagnostical options:
|
||||
-d : generate delta-mask PNGs (form: mask_FRM1_FRM2.png)
|
||||
|
||||
-------------
|
||||
Alex Volkov <codepro@usa.net>
|
||||
@@ -0,0 +1,276 @@
|
||||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/* This file contains two versions of make_file_list(); one for Windows, and
|
||||
* one for other systems (POSIX).
|
||||
*/
|
||||
#ifdef WIN32
|
||||
#include <io.h>
|
||||
#include <ctype.h>
|
||||
#include <string.h>
|
||||
#include <malloc.h>
|
||||
|
||||
char**
|
||||
make_file_list (const char* pattern, int* pnum_entries)
|
||||
{
|
||||
int num_entries, length;
|
||||
char** StringTable;
|
||||
char** lpLastOffs;
|
||||
|
||||
num_entries = 0;
|
||||
StringTable = 0;
|
||||
do
|
||||
{
|
||||
int slen;
|
||||
long handle;
|
||||
struct _finddata_t f;
|
||||
|
||||
if (num_entries == 0)
|
||||
length = 0;
|
||||
else
|
||||
{
|
||||
slen = (num_entries + 1) * sizeof (char*);
|
||||
StringTable = (char**) malloc (slen + length);
|
||||
if (StringTable == 0)
|
||||
break;
|
||||
|
||||
lpLastOffs = StringTable;
|
||||
*lpLastOffs = (char*)StringTable + slen;
|
||||
|
||||
num_entries = 0;
|
||||
length = slen;
|
||||
}
|
||||
|
||||
handle = _findfirst (pattern, &f);
|
||||
if (handle != -1)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (f.attrib & (_A_HIDDEN | _A_SUBDIR | _A_SYSTEM))
|
||||
continue;
|
||||
|
||||
slen = strlen (f.name) + 1;
|
||||
length += slen;
|
||||
|
||||
if (StringTable)
|
||||
{
|
||||
char *lpStr;
|
||||
char **lpLo, **lpHi;
|
||||
|
||||
lpLo = StringTable;
|
||||
lpHi = lpLastOffs - 1;
|
||||
while (lpLo <= lpHi)
|
||||
{
|
||||
char c1, c2;
|
||||
char *pStr;
|
||||
int LocLen;
|
||||
char **lpMid;
|
||||
|
||||
lpMid = lpLo + ((lpHi - lpLo) >> 1);
|
||||
|
||||
LocLen = lpMid[1] - lpMid[0];
|
||||
if (LocLen > slen)
|
||||
LocLen = slen;
|
||||
|
||||
lpStr = lpMid[0];
|
||||
pStr = f.name;
|
||||
while (LocLen--
|
||||
&& (c1 = toupper (*lpStr++))
|
||||
== (c2 = toupper (*pStr++)))
|
||||
;
|
||||
|
||||
if (c1 <= c2)
|
||||
lpLo = lpMid + 1;
|
||||
else
|
||||
lpHi = lpMid - 1;
|
||||
}
|
||||
|
||||
lpStr = lpLo[0];
|
||||
memmove (lpStr + slen, lpStr, lpLastOffs[0] - lpLo[0]);
|
||||
strcpy (lpStr, f.name);
|
||||
|
||||
for (lpHi = lpLastOffs++; lpHi >= lpLo; --lpHi)
|
||||
lpHi[1] = lpHi[0] + slen;
|
||||
}
|
||||
|
||||
++num_entries;
|
||||
|
||||
} while (_findnext (handle, &f) == 0);
|
||||
|
||||
_findclose (handle);
|
||||
}
|
||||
} while (num_entries && StringTable == 0);
|
||||
|
||||
if (StringTable == 0)
|
||||
*pnum_entries = 0;
|
||||
else
|
||||
*pnum_entries = num_entries;
|
||||
|
||||
return StringTable;
|
||||
}
|
||||
|
||||
#else /* ! defined(WIN32) */
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <dirent.h>
|
||||
#include <unistd.h>
|
||||
#include <fnmatch.h>
|
||||
#include <ctype.h>
|
||||
#include <limits.h>
|
||||
#include <string.h>
|
||||
#include <malloc.h>
|
||||
|
||||
char**
|
||||
make_file_list (const char* pattern, int* pnum_entries)
|
||||
{
|
||||
size_t num_entries, length;
|
||||
char** StringTable;
|
||||
char** lpLastOffs;
|
||||
char* slash; // Pointer inside pattern to the last /
|
||||
char path[PATH_MAX]; // buffer for a filename with path
|
||||
char* file; // Pointer inside path to the filename
|
||||
size_t pathlen; // length of path, excluding last / and filename
|
||||
|
||||
slash = (char*) strrchr ((const char *) pattern, '/');
|
||||
if (slash == NULL)
|
||||
{
|
||||
pathlen = 1;
|
||||
path[0] = '.';
|
||||
}
|
||||
else
|
||||
{
|
||||
pathlen = slash - pattern;
|
||||
memcpy (path, pattern, pathlen);
|
||||
pattern = slash + 1;
|
||||
}
|
||||
file = path + pathlen + 1;
|
||||
|
||||
num_entries = 0;
|
||||
StringTable = 0;
|
||||
do
|
||||
{
|
||||
int slen;
|
||||
DIR *handle;
|
||||
|
||||
if (num_entries == 0)
|
||||
length = 0;
|
||||
else
|
||||
{
|
||||
slen = (num_entries + 1) * sizeof (char*);
|
||||
StringTable = (char**) malloc (slen + length);
|
||||
if (StringTable == 0)
|
||||
break;
|
||||
|
||||
lpLastOffs = StringTable;
|
||||
*lpLastOffs = (char*)StringTable + slen;
|
||||
|
||||
num_entries = 0;
|
||||
length = slen;
|
||||
}
|
||||
|
||||
path[pathlen] = '\0'; // strip any file part
|
||||
handle = opendir((const char *) path);
|
||||
if (handle != NULL)
|
||||
{
|
||||
path[pathlen] = '/';
|
||||
// change the 0 char to a slash; a filename will be
|
||||
// attached here.
|
||||
while (1)
|
||||
{
|
||||
struct dirent *de;
|
||||
struct stat sb;
|
||||
|
||||
de = readdir(handle);
|
||||
if (de == NULL)
|
||||
break;
|
||||
if (de->d_name[0] == '.')
|
||||
continue;
|
||||
strcpy (file, de->d_name);
|
||||
// attach the filename to path
|
||||
if (stat(path, &sb) == -1)
|
||||
continue;
|
||||
if (!S_ISREG(sb.st_mode))
|
||||
continue;
|
||||
if (fnmatch(pattern, de->d_name, 0) != 0)
|
||||
continue;
|
||||
|
||||
slen = strlen (de->d_name) + 1;
|
||||
length += slen;
|
||||
|
||||
if (StringTable)
|
||||
{
|
||||
char *lpStr;
|
||||
char **lpLo, **lpHi;
|
||||
|
||||
lpLo = StringTable;
|
||||
lpHi = lpLastOffs - 1;
|
||||
while (lpLo <= lpHi)
|
||||
{
|
||||
char c1, c2;
|
||||
char *pStr;
|
||||
int LocLen;
|
||||
char **lpMid;
|
||||
|
||||
lpMid = lpLo + ((lpHi - lpLo) >> 1);
|
||||
|
||||
LocLen = lpMid[1] - lpMid[0];
|
||||
if (LocLen > slen)
|
||||
LocLen = slen;
|
||||
|
||||
lpStr = lpMid[0];
|
||||
pStr = de->d_name;
|
||||
while (LocLen--
|
||||
&& (c1 = toupper (*lpStr++))
|
||||
== (c2 = toupper (*pStr++)))
|
||||
;
|
||||
|
||||
if (c1 <= c2)
|
||||
lpLo = lpMid + 1;
|
||||
else
|
||||
lpHi = lpMid - 1;
|
||||
}
|
||||
|
||||
lpStr = lpLo[0];
|
||||
memmove (lpStr + slen, lpStr, lpLastOffs[0] - lpLo[0]);
|
||||
strcpy (lpStr, de->d_name);
|
||||
|
||||
for (lpHi = lpLastOffs++; lpHi >= lpLo; --lpHi)
|
||||
lpHi[1] = lpHi[0] + slen;
|
||||
}
|
||||
|
||||
++num_entries;
|
||||
}
|
||||
closedir(handle);
|
||||
}
|
||||
} while (num_entries && StringTable == 0);
|
||||
|
||||
if (StringTable == 0)
|
||||
*pnum_entries = 0;
|
||||
else
|
||||
*pnum_entries = num_entries;
|
||||
|
||||
return StringTable;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void
|
||||
free_file_list (char** list)
|
||||
{
|
||||
if (list)
|
||||
free(list);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,180 @@
|
||||
/* Declarations for getopt.
|
||||
Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#ifndef _GETOPT_H
|
||||
|
||||
#ifndef __need_getopt
|
||||
# define _GETOPT_H 1
|
||||
#endif
|
||||
|
||||
/* If __GNU_LIBRARY__ is not already defined, either we are being used
|
||||
standalone, or this is the first header included in the source file.
|
||||
If we are being used with glibc, we need to include <features.h>, but
|
||||
that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
|
||||
not defined, include <ctype.h>, which will pull in <features.h> for us
|
||||
if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
|
||||
doesn't flood the namespace with stuff the way some other headers do.) */
|
||||
#if !defined __GNU_LIBRARY__
|
||||
# include <ctype.h>
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* For communication from `getopt' to the caller.
|
||||
When `getopt' finds an option that takes an argument,
|
||||
the argument value is returned here.
|
||||
Also, when `ordering' is RETURN_IN_ORDER,
|
||||
each non-option ARGV-element is returned here. */
|
||||
|
||||
extern char *optarg;
|
||||
|
||||
/* Index in ARGV of the next element to be scanned.
|
||||
This is used for communication to and from the caller
|
||||
and for communication between successive calls to `getopt'.
|
||||
|
||||
On entry to `getopt', zero means this is the first call; initialize.
|
||||
|
||||
When `getopt' returns -1, this is the index of the first of the
|
||||
non-option elements that the caller should itself scan.
|
||||
|
||||
Otherwise, `optind' communicates from one call to the next
|
||||
how much of ARGV has been scanned so far. */
|
||||
|
||||
extern int optind;
|
||||
|
||||
/* Callers store zero here to inhibit the error message `getopt' prints
|
||||
for unrecognized options. */
|
||||
|
||||
extern int opterr;
|
||||
|
||||
/* Set to an option character which was unrecognized. */
|
||||
|
||||
extern int optopt;
|
||||
|
||||
#ifndef __need_getopt
|
||||
/* Describe the long-named options requested by the application.
|
||||
The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
|
||||
of `struct option' terminated by an element containing a name which is
|
||||
zero.
|
||||
|
||||
The field `has_arg' is:
|
||||
no_argument (or 0) if the option does not take an argument,
|
||||
required_argument (or 1) if the option requires an argument,
|
||||
optional_argument (or 2) if the option takes an optional argument.
|
||||
|
||||
If the field `flag' is not NULL, it points to a variable that is set
|
||||
to the value given in the field `val' when the option is found, but
|
||||
left unchanged if the option is not found.
|
||||
|
||||
To have a long-named option do something other than set an `int' to
|
||||
a compiled-in constant, such as set a value from `optarg', set the
|
||||
option's `flag' field to zero and its `val' field to a nonzero
|
||||
value (the equivalent single-letter option character, if there is
|
||||
one). For long options that have a zero `flag' field, `getopt'
|
||||
returns the contents of the `val' field. */
|
||||
|
||||
struct option
|
||||
{
|
||||
# if (defined __STDC__ && __STDC__) || defined __cplusplus
|
||||
const char *name;
|
||||
# else
|
||||
char *name;
|
||||
# endif
|
||||
/* has_arg can't be an enum because some compilers complain about
|
||||
type mismatches in all the code that assumes it is an int. */
|
||||
int has_arg;
|
||||
int *flag;
|
||||
int val;
|
||||
};
|
||||
|
||||
/* Names for the values of the `has_arg' field of `struct option'. */
|
||||
|
||||
# define no_argument 0
|
||||
# define required_argument 1
|
||||
# define optional_argument 2
|
||||
#endif /* need getopt */
|
||||
|
||||
|
||||
/* Get definitions and prototypes for functions to process the
|
||||
arguments in ARGV (ARGC of them, minus the program name) for
|
||||
options given in OPTS.
|
||||
|
||||
Return the option character from OPTS just read. Return -1 when
|
||||
there are no more options. For unrecognized options, or options
|
||||
missing arguments, `optopt' is set to the option letter, and '?' is
|
||||
returned.
|
||||
|
||||
The OPTS string is a list of characters which are recognized option
|
||||
letters, optionally followed by colons, specifying that that letter
|
||||
takes an argument, to be placed in `optarg'.
|
||||
|
||||
If a letter in OPTS is followed by two colons, its argument is
|
||||
optional. This behavior is specific to the GNU `getopt'.
|
||||
|
||||
The argument `--' causes premature termination of argument
|
||||
scanning, explicitly telling `getopt' that there are no more
|
||||
options.
|
||||
|
||||
If OPTS begins with `--', then non-option arguments are treated as
|
||||
arguments to the option '\0'. This behavior is specific to the GNU
|
||||
`getopt'. */
|
||||
|
||||
#if (defined __STDC__ && __STDC__) || defined __cplusplus
|
||||
# ifdef __GNU_LIBRARY__
|
||||
/* Many other libraries have conflicting prototypes for getopt, with
|
||||
differences in the consts, in stdlib.h. To avoid compilation
|
||||
errors, only prototype getopt for the GNU C library. */
|
||||
extern int getopt (int __argc, char *const *__argv, const char *__shortopts);
|
||||
# else /* not __GNU_LIBRARY__ */
|
||||
extern int getopt ();
|
||||
# endif /* __GNU_LIBRARY__ */
|
||||
|
||||
# ifndef __need_getopt
|
||||
extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts,
|
||||
const struct option *__longopts, int *__longind);
|
||||
extern int getopt_long_only (int __argc, char *const *__argv,
|
||||
const char *__shortopts,
|
||||
const struct option *__longopts, int *__longind);
|
||||
|
||||
/* Internal only. Users should not call this directly. */
|
||||
extern int _getopt_internal (int __argc, char *const *__argv,
|
||||
const char *__shortopts,
|
||||
const struct option *__longopts, int *__longind,
|
||||
int __long_only);
|
||||
# endif
|
||||
#else /* not __STDC__ */
|
||||
extern int getopt ();
|
||||
# ifndef __need_getopt
|
||||
extern int getopt_long ();
|
||||
extern int getopt_long_only ();
|
||||
|
||||
extern int _getopt_internal ();
|
||||
# endif
|
||||
#endif /* __STDC__ */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Make sure we later can get all the definitions and declarations. */
|
||||
#undef __need_getopt
|
||||
|
||||
#endif /* getopt.h */
|
||||
@@ -0,0 +1,189 @@
|
||||
/* getopt_long and getopt_long_only entry points for GNU getopt.
|
||||
Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98
|
||||
Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#ifndef HAVE_GETOPT_H
|
||||
#include "getopt.h"
|
||||
|
||||
#if !defined __STDC__ || !__STDC__
|
||||
/* This is a separate conditional since some stdc systems
|
||||
reject `defined (const)'. */
|
||||
#ifndef const
|
||||
#define const
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/* Comment out all this code if we are using the GNU C Library, and are not
|
||||
actually compiling the library itself. This code is part of the GNU C
|
||||
Library, but also included in many other GNU distributions. Compiling
|
||||
and linking in this code is a waste when using the GNU C library
|
||||
(especially if it is a shared library). Rather than having every GNU
|
||||
program understand `configure --with-gnu-libc' and omit the object files,
|
||||
it is simpler to just do this in the source for each such file. */
|
||||
|
||||
#define GETOPT_INTERFACE_VERSION 2
|
||||
#if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2
|
||||
#include <gnu-versions.h>
|
||||
#if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION
|
||||
#define ELIDE_CODE
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef ELIDE_CODE
|
||||
|
||||
|
||||
/* This needs to come after some library #include
|
||||
to get __GNU_LIBRARY__ defined. */
|
||||
#ifdef __GNU_LIBRARY__
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL 0
|
||||
#endif
|
||||
|
||||
int
|
||||
getopt_long (argc, argv, options, long_options, opt_index)
|
||||
int argc;
|
||||
char *const *argv;
|
||||
const char *options;
|
||||
const struct option *long_options;
|
||||
int *opt_index;
|
||||
{
|
||||
return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
|
||||
}
|
||||
|
||||
/* Like getopt_long, but '-' as well as '--' can indicate a long option.
|
||||
If an option that starts with '-' (not '--') doesn't match a long option,
|
||||
but does match a short option, it is parsed as a short option
|
||||
instead. */
|
||||
|
||||
int
|
||||
getopt_long_only (argc, argv, options, long_options, opt_index)
|
||||
int argc;
|
||||
char *const *argv;
|
||||
const char *options;
|
||||
const struct option *long_options;
|
||||
int *opt_index;
|
||||
{
|
||||
return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
|
||||
}
|
||||
|
||||
|
||||
#endif /* Not ELIDE_CODE. */
|
||||
|
||||
#ifdef TEST
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
int
|
||||
main (argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
int c;
|
||||
int digit_optind = 0;
|
||||
|
||||
while (1)
|
||||
{
|
||||
int this_option_optind = optind ? optind : 1;
|
||||
int option_index = 0;
|
||||
static struct option long_options[] =
|
||||
{
|
||||
{"add", 1, 0, 0},
|
||||
{"append", 0, 0, 0},
|
||||
{"delete", 1, 0, 0},
|
||||
{"verbose", 0, 0, 0},
|
||||
{"create", 0, 0, 0},
|
||||
{"file", 1, 0, 0},
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
c = getopt_long (argc, argv, "abc:d:0123456789",
|
||||
long_options, &option_index);
|
||||
if (c == -1)
|
||||
break;
|
||||
|
||||
switch (c)
|
||||
{
|
||||
case 0:
|
||||
printf ("option %s", long_options[option_index].name);
|
||||
if (optarg)
|
||||
printf (" with arg %s", optarg);
|
||||
printf ("\n");
|
||||
break;
|
||||
|
||||
case '0':
|
||||
case '1':
|
||||
case '2':
|
||||
case '3':
|
||||
case '4':
|
||||
case '5':
|
||||
case '6':
|
||||
case '7':
|
||||
case '8':
|
||||
case '9':
|
||||
if (digit_optind != 0 && digit_optind != this_option_optind)
|
||||
printf ("digits occur in two different argv-elements.\n");
|
||||
digit_optind = this_option_optind;
|
||||
printf ("option %c\n", c);
|
||||
break;
|
||||
|
||||
case 'a':
|
||||
printf ("option a\n");
|
||||
break;
|
||||
|
||||
case 'b':
|
||||
printf ("option b\n");
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
printf ("option c with value `%s'\n", optarg);
|
||||
break;
|
||||
|
||||
case 'd':
|
||||
printf ("option d with value `%s'\n", optarg);
|
||||
break;
|
||||
|
||||
case '?':
|
||||
break;
|
||||
|
||||
default:
|
||||
printf ("?? getopt returned character code 0%o ??\n", c);
|
||||
}
|
||||
}
|
||||
|
||||
if (optind < argc)
|
||||
{
|
||||
printf ("non-option ARGV-elements: ");
|
||||
while (optind < argc)
|
||||
printf ("%s ", argv[optind++]);
|
||||
printf ("\n");
|
||||
}
|
||||
|
||||
exit (0);
|
||||
}
|
||||
|
||||
#endif /* TEST */
|
||||
|
||||
#endif /* HAVE_GETOPT_H */
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,114 @@
|
||||
# Microsoft Developer Studio Project File - Name="makemng" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=makemng - 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 "makemng.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 "makemng.mak" CFG="makemng - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "makemng - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "makemng - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=xicl6.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "makemng - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /GX /O2 /I "." /I "..\..\src" /I "..\..\src\msvc++" /I "..\..\src\getopt" /D "NDEBUG" /D "WINDOWS" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "MNG_USE_DLL" /D "MNG_SKIP_LCMS" /D "MNG_SKIP_IJG6B" /D "ZLIB_DLL" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=xilink6.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:console /machine:I386
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib uuid.lib zlib.lib libmng.lib /nologo /subsystem:console /machine:I386 /libpath:"."
|
||||
|
||||
!ELSEIF "$(CFG)" == "makemng - 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 Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "." /I "..\..\src" /I "..\..\src\msvc++" /I "..\..\src\getopt" /D "_DEBUG" /D "ZLIB_DLL" /D "WINDOWS" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "MNG_USE_DLL" /D "MNG_SKIP_LCMS" /D "MNG_SKIP_IJG6B" /YX /FD /GZ /c
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=xilink6.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:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib uuid.lib zlib.lib libmng.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"."
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "makemng - Win32 Release"
|
||||
# Name "makemng - Win32 Debug"
|
||||
# Begin Group "Source Files"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\filelist.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\src\getopt\getopt.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\makemng.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header Files"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\getopt.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Resource Files"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "makemng"=.\makemng.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,515 @@
|
||||
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 326 B |
Binary file not shown.
|
After Width: | Height: | Size: 326 B |
@@ -0,0 +1,40 @@
|
||||
MNGPLG
|
||||
A simple browser plug-in for the MNG image/animation file format.
|
||||
|
||||
By Jason Summers <jason1@pobox.com>
|
||||
Web site: <http://pobox.com/~jason1/mngplg/>
|
||||
|
||||
|
||||
COPYRIGHT NOTICE
|
||||
|
||||
Copyright (c) 2000-2002 by Jason Summers <jason1@pobox.com>
|
||||
|
||||
THIS SOFTWARE IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT
|
||||
ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR
|
||||
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
|
||||
PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE,
|
||||
YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
|
||||
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
|
||||
THIS SOFTWARE AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING
|
||||
ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THIS SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THIS SOFTWARE TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this source code must not be misrepresented;
|
||||
you must not claim that you wrote the original software.
|
||||
2. Altered source versions must be plainly marked as such, and must not
|
||||
be misrepresented as being the original source.
|
||||
3. Altered binary versions must not be misrepresented as being the
|
||||
original.
|
||||
4. This Copyright notice may not be removed or altered from any source
|
||||
or altered source distribution, although you may add a Copyright
|
||||
notice for yourself for any code that you have written.
|
||||
@@ -0,0 +1,245 @@
|
||||
// npapidefs.h
|
||||
// minimal version of the defs from the NS plugin SDK
|
||||
|
||||
#ifndef NPAPIDEFS_H
|
||||
#define NPAPIDEFS_H
|
||||
|
||||
#define NP_VERSION_MAJOR 0
|
||||
#define NP_VERSION_MINOR 11
|
||||
|
||||
#define NPVERS_HAS_STREAMOUTPUT 8
|
||||
#define NPVERS_HAS_NOTIFICATION 9
|
||||
#define NPVERS_HAS_LIVECONNECT 9
|
||||
#define NPVERS_HAS_WINDOWLESS 11
|
||||
|
||||
#define NPERR_NO_ERROR 0
|
||||
#define NPERR_GENERIC_ERROR 1
|
||||
#define NPERR_INVALID_INSTANCE_ERROR 2
|
||||
#define NPERR_INVALID_FUNCTABLE_ERROR 3
|
||||
#define NPERR_MODULE_LOAD_FAILED_ERROR 4
|
||||
#define NPERR_OUT_OF_MEMORY_ERROR 5
|
||||
#define NPERR_INVALID_PLUGIN_ERROR 6
|
||||
#define NPERR_INVALID_PLUGIN_DIR_ERROR 7
|
||||
#define NPERR_INCOMPATIBLE_VERSION_ERROR 8
|
||||
#define NPERR_INVALID_PARAM 9
|
||||
#define NPERR_INVALID_URL 10
|
||||
#define NPERR_FILE_NOT_FOUND 11
|
||||
#define NPERR_NO_DATA 12
|
||||
#define NPERR_STREAM_NOT_SEEKABLE 13
|
||||
|
||||
#define NP_EMBED 1
|
||||
#define NP_FULL 2
|
||||
|
||||
#define NP_NORMAL 1
|
||||
#define NP_SEEK 2
|
||||
#define NP_ASFILE 3
|
||||
#define NP_ASFILEONLY 4
|
||||
|
||||
#define NPRES_DONE 0
|
||||
#define NPRES_NETWORK_ERR 1
|
||||
#define NPRES_USER_BREAK 2
|
||||
|
||||
typedef unsigned short uint16;
|
||||
typedef unsigned long uint32;
|
||||
typedef short int16;
|
||||
typedef long int32;
|
||||
|
||||
typedef unsigned char NPBool;
|
||||
typedef int16 NPError;
|
||||
typedef int16 NPReason;
|
||||
typedef char* NPMIMEType;
|
||||
typedef HRGN NPRegion;
|
||||
|
||||
typedef void* JRIGlobalRef;
|
||||
struct JRIEnvInterface;
|
||||
typedef struct JRIEnvInterface JRIEnvInterface;
|
||||
typedef const JRIEnvInterface* JRIEnv;
|
||||
struct _jobject;
|
||||
typedef struct _jobject *jobject;
|
||||
typedef jobject jref;
|
||||
|
||||
typedef struct _NPRect
|
||||
{
|
||||
uint16 top;
|
||||
uint16 left;
|
||||
uint16 bottom;
|
||||
uint16 right;
|
||||
} NPRect;
|
||||
|
||||
typedef struct _NPP
|
||||
{
|
||||
void* pdata;
|
||||
void* ndata;
|
||||
} NPP_t;
|
||||
|
||||
typedef NPP_t* NPP;
|
||||
|
||||
typedef struct _NPStream
|
||||
{
|
||||
void* pdata;
|
||||
void* ndata;
|
||||
const char* url;
|
||||
uint32 end;
|
||||
uint32 lastmodified;
|
||||
void* notifyData;
|
||||
} NPStream;
|
||||
|
||||
typedef enum {
|
||||
NPPVpluginNameString = 1,
|
||||
NPPVpluginDescriptionString,
|
||||
NPPVpluginWindowBool,
|
||||
NPPVpluginTransparentBool
|
||||
} NPPVariable;
|
||||
|
||||
typedef enum {
|
||||
NPNVxDisplay = 1,
|
||||
NPNVxtAppContext,
|
||||
NPNVnetscapeWindow,
|
||||
NPNVjavascriptEnabledBool,
|
||||
NPNVasdEnabledBool,
|
||||
NPNVisOfflineBool
|
||||
} NPNVariable;
|
||||
|
||||
typedef enum {
|
||||
NPWindowTypeWindow = 1,
|
||||
NPWindowTypeDrawable
|
||||
} NPWindowType;
|
||||
|
||||
typedef struct _NPSavedData
|
||||
{
|
||||
int32 len;
|
||||
void* buf;
|
||||
} NPSavedData;
|
||||
|
||||
typedef struct _NPByteRange
|
||||
{
|
||||
int32 offset;
|
||||
uint32 length;
|
||||
struct _NPByteRange* next;
|
||||
} NPByteRange;
|
||||
|
||||
typedef struct _NPFullPrint
|
||||
{
|
||||
NPBool pluginPrinted;
|
||||
NPBool printOne;
|
||||
void* platformPrint;
|
||||
} NPFullPrint;
|
||||
|
||||
typedef struct _NPWindow
|
||||
{
|
||||
void* window;
|
||||
int32 x;
|
||||
int32 y;
|
||||
uint32 width;
|
||||
uint32 height;
|
||||
NPRect clipRect;
|
||||
NPWindowType type;
|
||||
} NPWindow;
|
||||
|
||||
typedef struct _NPEmbedPrint
|
||||
{
|
||||
NPWindow window;
|
||||
void* platformPrint;
|
||||
} NPEmbedPrint;
|
||||
|
||||
typedef struct _NPPrint
|
||||
{
|
||||
uint16 mode;
|
||||
union
|
||||
{
|
||||
NPFullPrint fullPrint;
|
||||
NPEmbedPrint embedPrint;
|
||||
} print;
|
||||
} NPPrint;
|
||||
|
||||
typedef struct _NPEvent
|
||||
{
|
||||
uint16 event;
|
||||
uint32 wParam;
|
||||
uint32 lParam;
|
||||
} NPEvent;
|
||||
|
||||
|
||||
typedef NPError (*NPP_NewUPP)(NPMIMEType,NPP,uint16,int16,char* argn[],char* argv[],NPSavedData*);
|
||||
typedef NPError (*NPP_DestroyUPP)(NPP instance, NPSavedData** save);
|
||||
typedef NPError (*NPP_SetWindowUPP)(NPP,NPWindow*);
|
||||
typedef NPError (*NPP_NewStreamUPP)(NPP,NPMIMEType,NPStream*,NPBool,uint16*);
|
||||
typedef NPError (*NPP_DestroyStreamUPP)(NPP,NPStream*,NPReason);
|
||||
typedef int32 (*NPP_WriteReadyUPP)(NPP instance,NPStream*);
|
||||
typedef int32 (*NPP_WriteUPP)(NPP,NPStream*,int32,int32,void*);
|
||||
typedef void (*NPP_StreamAsFileUPP)(NPP,NPStream*,const char*);
|
||||
typedef void (*NPP_PrintUPP)(NPP,NPPrint*);
|
||||
typedef int16 (*NPP_HandleEventUPP)(NPP,void*);
|
||||
typedef void (*NPP_URLNotifyUPP)(NPP,const char*,NPReason,void*);
|
||||
typedef NPError (*NPP_GetValueUPP)(NPP,NPPVariable,void*);
|
||||
typedef NPError (*NPP_SetValueUPP)(NPP,NPNVariable,void*);
|
||||
typedef NPError (*NPN_GetValueUPP)(NPP,NPNVariable,void*);
|
||||
typedef NPError (*NPN_SetValueUPP)(NPP,NPPVariable,void*);
|
||||
typedef NPError (*NPN_GetURLNotifyUPP)(NPP,const char*,const char*,void*);
|
||||
typedef NPError (*NPN_PostURLNotifyUPP)(NPP,const char*,const char*,uint32,const char*,NPBool,void*);
|
||||
typedef NPError (*NPN_GetURLUPP)(NPP,const char*,const char*);
|
||||
typedef NPError (*NPN_PostURLUPP)(NPP,const char*,const char*,uint32,const char*,NPBool);
|
||||
typedef NPError (*NPN_RequestReadUPP)(NPStream*,NPByteRange*);
|
||||
typedef NPError (*NPN_NewStreamUPP)(NPP,NPMIMEType,const char*,NPStream**);
|
||||
typedef int32 (*NPN_WriteUPP)(NPP,NPStream*,int32,void*);
|
||||
typedef NPError (*NPN_DestroyStreamUPP)(NPP,NPStream*,NPReason);
|
||||
typedef void (*NPN_StatusUPP)(NPP instance, const char*);
|
||||
typedef const char* (*NPN_UserAgentUPP)(NPP);
|
||||
typedef void* (*NPN_MemAllocUPP)(uint32);
|
||||
typedef void (*NPN_MemFreeUPP)(void*);
|
||||
typedef uint32 (*NPN_MemFlushUPP)(uint32);
|
||||
typedef void (*NPN_ReloadPluginsUPP)(NPBool);
|
||||
typedef JRIEnv* (*NPN_GetJavaEnvUPP)(void);
|
||||
typedef jref (*NPN_GetJavaPeerUPP)(NPP);
|
||||
typedef void (*NPN_InvalidateRectUPP)(NPP,NPRect*);
|
||||
typedef void (*NPN_InvalidateRegionUPP)(NPP,NPRegion);
|
||||
typedef void (*NPN_ForceRedrawUPP)(NPP);
|
||||
|
||||
|
||||
typedef struct _NPPluginFuncs {
|
||||
uint16 size;
|
||||
uint16 version;
|
||||
NPP_NewUPP newp;
|
||||
NPP_DestroyUPP destroy;
|
||||
NPP_SetWindowUPP setwindow;
|
||||
NPP_NewStreamUPP newstream;
|
||||
NPP_DestroyStreamUPP destroystream;
|
||||
NPP_StreamAsFileUPP asfile;
|
||||
NPP_WriteReadyUPP writeready;
|
||||
NPP_WriteUPP write;
|
||||
NPP_PrintUPP print;
|
||||
NPP_HandleEventUPP event;
|
||||
NPP_URLNotifyUPP urlnotify;
|
||||
JRIGlobalRef javaClass;
|
||||
NPP_GetValueUPP getvalue;
|
||||
NPP_SetValueUPP setvalue;
|
||||
} NPPluginFuncs;
|
||||
|
||||
typedef struct _NPNetscapeFuncs {
|
||||
uint16 size;
|
||||
uint16 version;
|
||||
NPN_GetURLUPP geturl;
|
||||
NPN_PostURLUPP posturl;
|
||||
NPN_RequestReadUPP requestread;
|
||||
NPN_NewStreamUPP newstream;
|
||||
NPN_WriteUPP write;
|
||||
NPN_DestroyStreamUPP destroystream;
|
||||
NPN_StatusUPP status;
|
||||
NPN_UserAgentUPP uagent;
|
||||
NPN_MemAllocUPP memalloc;
|
||||
NPN_MemFreeUPP memfree;
|
||||
NPN_MemFlushUPP memflush;
|
||||
NPN_ReloadPluginsUPP reloadplugins;
|
||||
NPN_GetJavaEnvUPP getJavaEnv;
|
||||
NPN_GetJavaPeerUPP getJavaPeer;
|
||||
NPN_GetURLNotifyUPP geturlnotify;
|
||||
NPN_PostURLNotifyUPP posturlnotify;
|
||||
NPN_GetValueUPP getvalue;
|
||||
NPN_SetValueUPP setvalue;
|
||||
NPN_InvalidateRectUPP invalidaterect;
|
||||
NPN_InvalidateRegionUPP invalidateregion;
|
||||
NPN_ForceRedrawUPP forceredraw;
|
||||
} NPNetscapeFuncs;
|
||||
|
||||
|
||||
#endif // NPAPIDEFS_H
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,6 @@
|
||||
LIBRARY npmngplg
|
||||
|
||||
EXPORTS
|
||||
NP_GetEntryPoints @1
|
||||
NP_Initialize @2
|
||||
NP_Shutdown @3
|
||||
@@ -0,0 +1,22 @@
|
||||
# Microsoft Developer Studio Generated Dependency File, included by npmngplg.mak
|
||||
|
||||
.\npmngplg.c : \
|
||||
"..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
|
||||
"..\jpgsrc6b\jconfig.h"\
|
||||
"..\jpgsrc6b\jmorecfg.h"\
|
||||
"..\jpgsrc6b\jpeglib.h"\
|
||||
"..\jpgsrc6b\jversion.h"\
|
||||
"..\lcms-1.08a\include\icc34.h"\
|
||||
"..\lcms-1.08a\include\lcms.h"\
|
||||
"..\libmng-1.0.4\libmng.h"\
|
||||
"..\libmng-1.0.4\libmng_conf.h"\
|
||||
"..\libmng-1.0.4\libmng_types.h"\
|
||||
"..\zlib-1.1.4\zconf.h"\
|
||||
"..\zlib-1.1.4\zlib.h"\
|
||||
".\npapidefs.h"\
|
||||
|
||||
|
||||
.\npmngplg.rc : \
|
||||
".\cur_ie.cur"\
|
||||
".\cur_ns.cur"\
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
# Microsoft Developer Studio Project File - Name="npmngplg" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
|
||||
|
||||
CFG=npmngplg - 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 "npmngplg.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 "npmngplg.mak" CFG="npmngplg - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "npmngplg - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE "npmngplg - Win32 Debug" (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)" == "npmngplg - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
|
||||
# ADD CPP /nologo /MT /W3 /GX /O2 /I "..\libmng-1.0.5" /I "..\zlib-1.1.4" /I "..\jpgsrc6b" /I "..\lcms-1.09b\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /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 ..\libmng-1.0.5\Release\libmng.lib ..\zlib-1.1.4\Release\zlib.lib ..\jpgsrc6b\Release\libjpeg.lib ..\lcms-1.09b\src\Release\lcms.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib /nologo /subsystem:windows /dll /machine:I386
|
||||
# SUBTRACT LINK32 /pdb:none
|
||||
|
||||
!ELSEIF "$(CFG)" == "npmngplg - 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 Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
|
||||
# ADD CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\libmng-1.0.5" /I "..\zlib-1.1.4" /I "..\jpgsrc6b" /I "..\lcms-1.09b\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR /YX /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 ..\libmng-1.0.5\Debug\libmng.lib ..\zlib-1.1.4\Debug\zlib.lib ..\jpgsrc6b\Debug\libjpeg.lib ..\lcms-1.09b\src\Debug\lcms.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"c:\program files\opera\program\plugins\npmngplg.dll" /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "npmngplg - Win32 Release"
|
||||
# Name "npmngplg - Win32 Debug"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\cur_ns.cur
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\npapidefs.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\npmngplg.c
|
||||
|
||||
!IF "$(CFG)" == "npmngplg - Win32 Release"
|
||||
|
||||
# SUBTRACT CPP /YX
|
||||
|
||||
!ELSEIF "$(CFG)" == "npmngplg - Win32 Debug"
|
||||
|
||||
# SUBTRACT CPP /Fr /YX /Yc /Yu
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\npmngplg.def
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\npmngplg.rc
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "npmngplg"=.\npmngplg.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1,225 @@
|
||||
# Microsoft Developer Studio Generated NMAKE File, Based on npmngplg.dsp
|
||||
!IF "$(CFG)" == ""
|
||||
CFG=npmngplg - Win32 Debug
|
||||
!MESSAGE No configuration specified. Defaulting to npmngplg - Win32 Debug.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" != "npmngplg - Win32 Release" && "$(CFG)" != "npmngplg - Win32 Debug"
|
||||
!MESSAGE Invalid configuration "$(CFG)" specified.
|
||||
!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 "npmngplg.mak" CFG="npmngplg - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "npmngplg - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE "npmngplg - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE
|
||||
!ERROR An invalid configuration is specified.
|
||||
!ENDIF
|
||||
|
||||
!IF "$(OS)" == "Windows_NT"
|
||||
NULL=
|
||||
!ELSE
|
||||
NULL=nul
|
||||
!ENDIF
|
||||
|
||||
!IF "$(CFG)" == "npmngplg - Win32 Release"
|
||||
|
||||
OUTDIR=.\Release
|
||||
INTDIR=.\Release
|
||||
# Begin Custom Macros
|
||||
OutDir=.\Release
|
||||
# End Custom Macros
|
||||
|
||||
ALL : "$(OUTDIR)\npmngplg.dll"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\npmngplg.obj"
|
||||
-@erase "$(INTDIR)\npmngplg.res"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(OUTDIR)\npmngplg.dll"
|
||||
-@erase "$(OUTDIR)\npmngplg.exp"
|
||||
-@erase "$(OUTDIR)\npmngplg.lib"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "..\libmng-1.0.5" /I "..\zlib-1.1.4" /I "..\jpgsrc6b" /I "..\lcms-1.09b\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fp"$(INTDIR)\npmngplg.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
MTL=midl.exe
|
||||
MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
|
||||
RSC=rc.exe
|
||||
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\npmngplg.res" /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\npmngplg.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=..\libmng-1.0.5\Release\libmng.lib ..\zlib-1.1.4\Release\zlib.lib ..\jpgsrc6b\Release\libjpeg.lib ..\lcms-1.09b\src\Release\lcms.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib /nologo /subsystem:windows /dll /incremental:no /pdb:"$(OUTDIR)\npmngplg.pdb" /machine:I386 /def:".\npmngplg.def" /out:"$(OUTDIR)\npmngplg.dll" /implib:"$(OUTDIR)\npmngplg.lib"
|
||||
DEF_FILE= \
|
||||
".\npmngplg.def"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\npmngplg.obj" \
|
||||
"$(INTDIR)\npmngplg.res"
|
||||
|
||||
"$(OUTDIR)\npmngplg.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ELSEIF "$(CFG)" == "npmngplg - Win32 Debug"
|
||||
|
||||
OUTDIR=.\Debug
|
||||
INTDIR=.\Debug
|
||||
|
||||
ALL : "..\..\program files\opera\program\plugins\npmngplg.dll"
|
||||
|
||||
|
||||
CLEAN :
|
||||
-@erase "$(INTDIR)\npmngplg.obj"
|
||||
-@erase "$(INTDIR)\npmngplg.res"
|
||||
-@erase "$(INTDIR)\vc60.idb"
|
||||
-@erase "$(INTDIR)\vc60.pdb"
|
||||
-@erase "$(OUTDIR)\npmngplg.exp"
|
||||
-@erase "$(OUTDIR)\npmngplg.lib"
|
||||
-@erase "$(OUTDIR)\npmngplg.pdb"
|
||||
-@erase "..\..\program files\opera\program\plugins\npmngplg.dll"
|
||||
-@erase "..\..\program files\opera\program\plugins\npmngplg.ilk"
|
||||
|
||||
"$(OUTDIR)" :
|
||||
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
|
||||
|
||||
CPP=cl.exe
|
||||
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\libmng-1.0.5" /I "..\zlib-1.1.4" /I "..\jpgsrc6b" /I "..\lcms-1.09b\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\npmngplg.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
.c{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.obj::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.c{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cpp{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
.cxx{$(INTDIR)}.sbr::
|
||||
$(CPP) @<<
|
||||
$(CPP_PROJ) $<
|
||||
<<
|
||||
|
||||
MTL=midl.exe
|
||||
MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
|
||||
RSC=rc.exe
|
||||
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\npmngplg.res" /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
BSC32_FLAGS=/nologo /o"$(OUTDIR)\npmngplg.bsc"
|
||||
BSC32_SBRS= \
|
||||
|
||||
LINK32=link.exe
|
||||
LINK32_FLAGS=..\libmng-1.0.5\Debug\libmng.lib ..\zlib-1.1.4\Debug\zlib.lib ..\jpgsrc6b\Debug\libjpeg.lib ..\lcms-1.09b\src\Debug\lcms.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"$(OUTDIR)\npmngplg.pdb" /debug /machine:I386 /def:".\npmngplg.def" /out:"c:\program files\opera\program\plugins\npmngplg.dll" /implib:"$(OUTDIR)\npmngplg.lib" /pdbtype:sept
|
||||
DEF_FILE= \
|
||||
".\npmngplg.def"
|
||||
LINK32_OBJS= \
|
||||
"$(INTDIR)\npmngplg.obj" \
|
||||
"$(INTDIR)\npmngplg.res"
|
||||
|
||||
"..\..\program files\opera\program\plugins\npmngplg.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
|
||||
$(LINK32) @<<
|
||||
$(LINK32_FLAGS) $(LINK32_OBJS)
|
||||
<<
|
||||
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(NO_EXTERNAL_DEPS)" != "1"
|
||||
!IF EXISTS("npmngplg.dep")
|
||||
!INCLUDE "npmngplg.dep"
|
||||
!ELSE
|
||||
!MESSAGE Warning: cannot find "npmngplg.dep"
|
||||
!ENDIF
|
||||
!ENDIF
|
||||
|
||||
|
||||
!IF "$(CFG)" == "npmngplg - Win32 Release" || "$(CFG)" == "npmngplg - Win32 Debug"
|
||||
SOURCE=.\npmngplg.c
|
||||
|
||||
!IF "$(CFG)" == "npmngplg - Win32 Release"
|
||||
|
||||
CPP_SWITCHES=/nologo /MT /W3 /GX /O2 /I "..\libmng-1.0.5" /I "..\zlib-1.1.4" /I "..\jpgsrc6b" /I "..\lcms-1.09b\include" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
"$(INTDIR)\npmngplg.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) @<<
|
||||
$(CPP_SWITCHES) $(SOURCE)
|
||||
<<
|
||||
|
||||
|
||||
!ELSEIF "$(CFG)" == "npmngplg - Win32 Debug"
|
||||
|
||||
CPP_SWITCHES=/nologo /MTd /W3 /Gm /GX /ZI /Od /I "..\libmng-1.0.5" /I "..\zlib-1.1.4" /I "..\jpgsrc6b" /I "..\lcms-1.09b\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
|
||||
|
||||
"$(INTDIR)\npmngplg.obj" : $(SOURCE) "$(INTDIR)"
|
||||
$(CPP) @<<
|
||||
$(CPP_SWITCHES) $(SOURCE)
|
||||
<<
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
SOURCE=.\npmngplg.rc
|
||||
|
||||
"$(INTDIR)\npmngplg.res" : $(SOURCE) "$(INTDIR)"
|
||||
$(RSC) $(RSC_PROJ) $(SOURCE)
|
||||
|
||||
|
||||
|
||||
!ENDIF
|
||||
|
||||
@@ -0,0 +1,175 @@
|
||||
//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
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
#ifndef _MAC
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,1,1
|
||||
PRODUCTVERSION 1,0,1,1
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904e4"
|
||||
BEGIN
|
||||
VALUE "Comments", "\0"
|
||||
VALUE "CompanyName", "Jason Summers\0"
|
||||
VALUE "FileDescription", "MNG Plug-in 1.0.1\0"
|
||||
VALUE "FileExtents", "mng|mng|jng|jng\0"
|
||||
VALUE "FileOpenName", "MNG Animation (*.mng)|MNG Animation (*.mng)|JNG Image (*.jng)|JNG Image (*.jng)\0"
|
||||
VALUE "FileVersion", "1.0.1\0"
|
||||
VALUE "InternalName", "npmngplg\0"
|
||||
VALUE "LegalCopyright", "Copyright © 2000-2002\0"
|
||||
VALUE "LegalTrademarks", "\0"
|
||||
VALUE "MIMEType", "video/mng|video/x-mng|image/jng|image/x-jng\0"
|
||||
VALUE "OriginalFilename", "npmngplg.dll\0"
|
||||
VALUE "PrivateBuild", "\0"
|
||||
VALUE "ProductName", "MNG Plug-in 1.0.1\0"
|
||||
VALUE "ProductVersion", "1.0.1\0"
|
||||
VALUE "SpecialBuild", "\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1252
|
||||
END
|
||||
END
|
||||
|
||||
#endif // !_MAC
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
//
|
||||
|
||||
ABOUTDLG DIALOG DISCARDABLE 0, 0, 282, 137
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "MNGPLG"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,225,7,50,14,WS_GROUP
|
||||
EDITTEXT IDC_PRGINFO,7,7,213,123,ES_MULTILINE | ES_AUTOVSCROLL |
|
||||
ES_READONLY | NOT WS_BORDER | WS_VSCROLL | WS_GROUP
|
||||
END
|
||||
|
||||
PROPDLG DIALOG DISCARDABLE 0, 0, 344, 186
|
||||
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "Image properties"
|
||||
FONT 8, "MS Sans Serif"
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,287,7,50,14,WS_GROUP
|
||||
EDITTEXT IDC_IMGINFO,7,7,275,97,ES_MULTILINE | ES_AUTOVSCROLL |
|
||||
ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | WS_GROUP
|
||||
LTEXT "Image comments:",IDC_STATIC,7,108,56,8
|
||||
EDITTEXT IDC_MNGTEXT,7,119,275,60,ES_MULTILINE | ES_READONLY |
|
||||
WS_VSCROLL | WS_GROUP
|
||||
END
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DESIGNINFO
|
||||
//
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
GUIDELINES DESIGNINFO DISCARDABLE
|
||||
BEGIN
|
||||
"ABOUTDLG", DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 275
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 130
|
||||
END
|
||||
|
||||
"PROPDLG", DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 337
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 179
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Cursor
|
||||
//
|
||||
|
||||
CURHAND_NS CURSOR DISCARDABLE "cur_ns.cur"
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Developer Studio generated include file.
|
||||
// Used by npmngplg.rc
|
||||
//
|
||||
#define IDR_DATA1 106
|
||||
#define IDC_PRGINFO 1000
|
||||
#define IDC_IMGINFO 1001
|
||||
#define IDC_MNGTEXT 1002
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 110
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1004
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
@@ -0,0 +1,211 @@
|
||||
MNGPLG
|
||||
A simple browser plug-in for the MNG image/animation file format.
|
||||
|
||||
By Jason Summers <jason1@pobox.com>
|
||||
Version 1.0.1 2 Oct 2002
|
||||
Web site: <http://pobox.com/~jason1/mngplg/>
|
||||
|
||||
|
||||
COPYRIGHT NOTICE
|
||||
|
||||
Copyright (c) 2000-2002 by Jason Summers <jason1@pobox.com>
|
||||
|
||||
THIS SOFTWARE IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT
|
||||
ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR
|
||||
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
|
||||
PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE,
|
||||
YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
|
||||
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
|
||||
THIS SOFTWARE AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING
|
||||
ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THIS SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THIS SOFTWARE TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this source code must not be misrepresented;
|
||||
you must not claim that you wrote the original software.
|
||||
2. Altered source versions must be plainly marked as such, and must not
|
||||
be misrepresented as being the original source.
|
||||
3. Altered binary versions must not be misrepresented as being the
|
||||
original.
|
||||
4. This Copyright notice may not be removed or altered from any source
|
||||
or altered source distribution, although you may add a Copyright
|
||||
notice for yourself for any code that you have written.
|
||||
|
||||
|
||||
This software uses several third-party libraries (listed below), some of
|
||||
which are optional. If you redistribute MNGPLG, it is your responsibility to
|
||||
comply with the licenses of any libraries used.
|
||||
|
||||
This package includes a compiled executable plug-in file, npmngplg.dll. This
|
||||
file includes code from lcms, which is distributed under the LGPL. To the
|
||||
best of my understanding, that basically means that anyone distributing that
|
||||
file must (1) make it possible for the recipient to modify the plug-in to
|
||||
use a new or modified version of lcms, and (2) make available the lcms
|
||||
source code. Requirement (1) is satisfied by the inclusion of the source
|
||||
code. For requirement (2), you can find out how to get the lcms source code
|
||||
at the web site listed at the beginning of this document, if necessary.
|
||||
|
||||
|
||||
---------
|
||||
|
||||
Based on libmng.
|
||||
Copyright (c) 2000,2002 Gerard Juyn (gerard@libmng.com)
|
||||
<http://www.libmng.com/>
|
||||
|
||||
Uses the zlib compression library.
|
||||
(C) 1995-2002 Jean-loup Gailly and Mark Adler
|
||||
|
||||
This software is based in part on the work of the Independent JPEG Group.
|
||||
Copyright (C) 1991-1998, Thomas G. Lane
|
||||
|
||||
Uses the lcms color management library by Martí Maria Saguer.
|
||||
(distributed under the GNU LESSER GENERAL PUBLIC LICENSE)
|
||||
|
||||
---------
|
||||
|
||||
SECURITY NOTICE
|
||||
|
||||
Although I've tried to write it carefully, MNGPLG has not had any sort of
|
||||
security audit. Due to the nature of plug-ins, it is possible for certain
|
||||
types of bugs to exist which may allow remote web sites to take control of
|
||||
your computer or do harm to it by sending a carefully constructed data file
|
||||
to the plug-in. If you are paranoid about security, you may not wish to
|
||||
leave MNGPLG enabled in your browser for an extended period of time.
|
||||
|
||||
---------
|
||||
|
||||
INTRODUCTION
|
||||
|
||||
MNGPLG is a Netscape-style browser plug-in which displays the MNG
|
||||
image/animation format. It is configured to claim the following MIME types:
|
||||
|
||||
video/x-mng
|
||||
video/mng
|
||||
image/x-jng
|
||||
image/jng
|
||||
|
||||
It claims the file extensions ".mng" and ".jng", but file extensions should
|
||||
only apply when no MIME type is available (e.g. on an FTP site, or on your
|
||||
local hard disk).
|
||||
|
||||
It can also display PNG image files, but it would cause too many problems
|
||||
for it to try to claim the PNG data type.
|
||||
|
||||
If you are configuring a web server to support MNG and JNG, the correct
|
||||
MIME types to use are "video/x-mng" and "image/x-jng", since the MIME types
|
||||
have not, as of this writing, been officially registered.
|
||||
|
||||
|
||||
REQUIREMENTS
|
||||
|
||||
MNG requires a 32-bit Windows operating system, and a 32-bit web browser
|
||||
that supports Netscape-style plug-ins. For example, it works in Netscape 3
|
||||
and higher, Opera 3.51 and higher, and Microsoft Internet Explorer from
|
||||
about version 3 to 5.0. (It does not readily work in IE 5.5sp2 and
|
||||
higher.) Netscape 6 and higher (and related browsers) include native
|
||||
support for MNG, so it should not be necessary to use this plug-in.
|
||||
|
||||
|
||||
INSTALLATION
|
||||
|
||||
There's no install program. To install it, copy the included "npmngplg.dll"
|
||||
file to your browser's "Plugins" folder, then restart your browser.
|
||||
|
||||
For Netscape 4.x, the Plugins folder is typically located somewhere like:
|
||||
C:\Program Files\Netscape\Communicator\Program\Plugins
|
||||
|
||||
Note: Windows Explorer, by default, is configured to hide files that end in
|
||||
".dll". You should probably change that setting. I'd tell you how, but it's
|
||||
different in almost every version of Windows.
|
||||
|
||||
In Netscape 4.x, you can verify that the plug-in is installed by choosing
|
||||
Help|About Plug-ins from the main menu (with JavaScript enabled).
|
||||
|
||||
To uninstall, delete the npmngplg.dll file. It does not create any other
|
||||
files. It currently does not write anything to the Windows registry.
|
||||
|
||||
|
||||
HOW TO USE (FOR END USERS)
|
||||
|
||||
Right-click on an MNG image as it is being displayed to get a menu with some
|
||||
of the usual features.
|
||||
|
||||
Right-click and choose "Properties" to display some internal information
|
||||
about the image. Some images have embedded text information that will be
|
||||
shown in the "Image comments" area. For technical reasons, some or all of
|
||||
the comments may not be available until the animation completes a full loop.
|
||||
|
||||
|
||||
HOW TO USE (FOR WEB DEVELOPERS)
|
||||
|
||||
First, if at all possible, configure your web server (not browser) to
|
||||
assign the MIME type "video/x-mng" to files that end in ".mng", and
|
||||
assign type "image/x-jng" to files that end in ".jng".
|
||||
|
||||
The most reliable way to embed MNG files in a web page is (unfortunately)
|
||||
to use the nonstandard <embed> tag. For example:
|
||||
|
||||
<embed src="foo.mng" width="100" height="100" type="video/x-mng">
|
||||
|
||||
The src, width, and height attributes are required. Width and height should
|
||||
match the actual width and height of the image.
|
||||
|
||||
Transparency is not supported, and probably never will be. However, you can
|
||||
supply a background color to use in transparent areas by using the BGCOLOR
|
||||
attribute in the EMBED tag, i.e.:
|
||||
|
||||
<embed src="foo.mng" bgcolor="#ff0000" ...>
|
||||
|
||||
You cannot use color names like "red"; you must use the hexadecimal format
|
||||
as in the example.
|
||||
|
||||
An image can be made into a "hotlink" by including an HREF and optionally a
|
||||
TARGET attribute in the EMBED tag. For example:
|
||||
|
||||
<embed src="foo.mng" href="http://www.libpng.org/pub/mng/" target="_blank"
|
||||
...>
|
||||
|
||||
|
||||
SOURCE CODE
|
||||
|
||||
The C source code is included. I've only tested it with libmng 1.0.5,
|
||||
but it's probably also compatible with other versions, maybe with
|
||||
minor changes.
|
||||
|
||||
To compile it, you'll need:
|
||||
|
||||
- libmng MNG library <http://www.libmng.com/>.
|
||||
|
||||
libmng in turn uses some other libraries:
|
||||
|
||||
- zlib compression library
|
||||
|
||||
- IJG JPEG library
|
||||
|
||||
- [optional] lcms "Little Color Management System" library.
|
||||
|
||||
If you include lcms, turn on the MNG_FULL_CMS option in libmng_conf.h
|
||||
before compiling. Note that lcms is distributed under the LGPL -- be sure
|
||||
you understand the implications of that before distributing any resulting
|
||||
executable files.
|
||||
|
||||
If you don't include lcms, comment out the "#define MNGPLG_CMS" line in
|
||||
npmngplg.c.
|
||||
|
||||
I also recommend turning on the MNG_ERROR_TELLTALE and
|
||||
MNG_SUPPORT_DYNAMICMNG options in libmng_conf.h.
|
||||
|
||||
The files from the Netscape plug-in SDK are no longer needed as of MNGPNG
|
||||
0.9.4.
|
||||
|
||||
Make sure to include the npmngplg.def file in your project, or declare the
|
||||
necessary DLL entry points in some other way.
|
||||
@@ -0,0 +1,126 @@
|
||||
# Microsoft Developer Studio Project File - Name="MNGView" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** NICHT BEARBEITEN **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Application" 0x0101
|
||||
|
||||
CFG=MNGView - Win32 Debug
|
||||
!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE
|
||||
!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "MNGView.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben
|
||||
!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "MNGView.mak" CFG="MNGView - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Für die Konfiguration stehen zur Auswahl:
|
||||
!MESSAGE
|
||||
!MESSAGE "MNGView - Win32 Release" (basierend auf "Win32 (x86) Application")
|
||||
!MESSAGE "MNGView - Win32 Debug" (basierend auf "Win32 (x86) Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
MTL=midl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "MNGView - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0xc07 /d "NDEBUG"
|
||||
# ADD RSC /l 0xc07 /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 /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 /machine:I386 /out:"MNGView.exe"
|
||||
|
||||
!ELSEIF "$(CFG)" == "MNGView - 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 /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD BASE RSC /l 0xc07 /d "_DEBUG"
|
||||
# ADD RSC /l 0xc07 /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 /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 /debug /machine:I386 /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "MNGView - Win32 Release"
|
||||
# Name "MNGView - Win32 Debug"
|
||||
# Begin Group "Quellcodedateien"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Main.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Main.rc
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\mng.cpp
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Header-Dateien"
|
||||
|
||||
# PROP Default_Filter "h;hpp;hxx;hm;inl"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Main.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\resource.h
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "Ressourcendateien"
|
||||
|
||||
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\Mng.ico
|
||||
# End Source File
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "MNGView"=.\MNGView.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Microsoft C/C++ program database 2.00
|
||||
Binary file not shown.
@@ -0,0 +1,34 @@
|
||||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Erstellungsprotokoll</h1>
|
||||
<h3>
|
||||
--------------------Konfiguration: MNGView - Win32 Release--------------------
|
||||
</h3>
|
||||
<h3>Befehlszeilen</h3>
|
||||
Erstellen der temporären Datei "C:\WINDOWS\TEMP\RSPF386.TMP" mit Inhalten
|
||||
[
|
||||
/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /Fp"Release/MNGView.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
|
||||
"F:\Nikgames\Libmng\contrib\MNGView\Main.cpp"
|
||||
]
|
||||
Creating command line "cl.exe @C:\WINDOWS\TEMP\RSPF386.TMP"
|
||||
Erstellen der temporären Datei "C:\WINDOWS\TEMP\RSPF387.TMP" mit Inhalten
|
||||
[
|
||||
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 /incremental:no /pdb:"Release/MNGView.pdb" /machine:I386 /out:"MNGView.exe"
|
||||
.\Release\Main.obj
|
||||
.\Release\mng.obj
|
||||
.\Release\Main.res
|
||||
]
|
||||
Erstellen der Befehlzeile "link.exe @C:\WINDOWS\TEMP\RSPF387.TMP"
|
||||
<h3>Ausgabefenster</h3>
|
||||
Kompilierung läuft...
|
||||
Main.cpp
|
||||
Linker-Vorgang läuft...
|
||||
|
||||
|
||||
|
||||
<h3>Ergebnisse</h3>
|
||||
MNGView.exe - 0 Fehler, 0 Warnung(en)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
@@ -0,0 +1,334 @@
|
||||
//---------------------------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------------------------
|
||||
//
|
||||
// MNGView Sample Application for VC6:
|
||||
// Loads all MNG/JNG/PNG Files LibMNG can do
|
||||
// Can save a single Frame to PNG Format.
|
||||
//
|
||||
// This code is public domain.
|
||||
// Created by Nikolaus Brennig, November 14th, 2000.
|
||||
// virtualnik@nol.at
|
||||
// http://cust.nol.at/ppee
|
||||
//
|
||||
// Tab: 4
|
||||
//
|
||||
//---------------------------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------------------------
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include "Main.h"
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Libs (its up to you to make VC find the libs; set the paths in the options):
|
||||
//---------------------------------------------------------------------------------------------
|
||||
#pragma comment(lib,"comctl32.lib")
|
||||
#pragma comment(lib,"libmng.lib")
|
||||
#pragma comment(lib,"libjpeg.lib")
|
||||
#pragma comment(lib,"libz.lib")
|
||||
#pragma comment(lib,"lcmsstat.lib")
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Vars:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
HWND hPicWin;
|
||||
HINSTANCE hinst;
|
||||
HMENU hMenu;
|
||||
HDC MemDC, hdc;
|
||||
HBITMAP MemImage, DefaultMemImage;
|
||||
ANIMFILE AnimFile;
|
||||
RECT rcRect;
|
||||
OPENFILENAME ofn, sfn;
|
||||
int W, H, Bits;
|
||||
int dx, dy;
|
||||
char OFNFile[1024];
|
||||
char CurDir[1024];
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Loads a file:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
VOID LoadOFN( HWND hwnd )
|
||||
{
|
||||
GetCurrentDirectory( sizeof(CurDir), CurDir );
|
||||
|
||||
ofn.lStructSize = sizeof(OPENFILENAME);
|
||||
ofn.hwndOwner = hwnd;
|
||||
ofn.lpstrFile = OFNFile;
|
||||
ofn.nMaxFile = sizeof(OFNFile);
|
||||
ofn.lpstrFilter = "Network Graphics (*.mng;*.jng:*.png)\0*.mng;*.jng;*.png\0";
|
||||
ofn.nFilterIndex = 1;
|
||||
ofn.lpstrFileTitle = NULL;
|
||||
ofn.nMaxFileTitle = NULL;
|
||||
ofn.lpstrInitialDir = CurDir;
|
||||
ofn.lpstrTitle = "Load:";
|
||||
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST |
|
||||
OFN_HIDEREADONLY | OFN_NONETWORKBUTTON;
|
||||
|
||||
// Display the Open dialog box.
|
||||
if( GetOpenFileName(&ofn) )
|
||||
{
|
||||
dx = dy = W = H = 0;
|
||||
if( AnimFile.isAnimation == 1 ) CleanUpMNG();
|
||||
LoadMNG( OFNFile, hwnd, hdc );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Saves a file:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
VOID SaveSFN( HWND hwnd )
|
||||
{
|
||||
GetCurrentDirectory( sizeof(CurDir), CurDir );
|
||||
|
||||
// Initialize OPENFILENAME
|
||||
sfn.lStructSize = sizeof(OPENFILENAME);
|
||||
sfn.hwndOwner = hwnd;
|
||||
sfn.lpstrFile = OFNFile;
|
||||
sfn.nMaxFile = sizeof(OFNFile);
|
||||
sfn.lpstrFilter = "PNG\0*.png\0";
|
||||
sfn.nFilterIndex = 1;
|
||||
sfn.lpstrFileTitle = 0;
|
||||
sfn.nMaxFileTitle = 0;
|
||||
sfn.lpstrInitialDir = CurDir;
|
||||
sfn.lpstrTitle = "Save an Image";
|
||||
sfn.Flags = OFN_EXPLORER | OFN_HIDEREADONLY | OFN_NONETWORKBUTTON;
|
||||
|
||||
// Display the Open dialog box.
|
||||
if( GetSaveFileName(&sfn) )
|
||||
{
|
||||
SaveMNG( OFNFile, MemDC, MemImage );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// For stringhandling...
|
||||
//---------------------------------------------------------------------------------------------
|
||||
VOID catpath( char *dst, const char *src )
|
||||
{
|
||||
int len = lstrlen(dst);
|
||||
if( len > 0 && (dst[len-1] != '\\' && dst[len-1] != '/') ) lstrcat( dst, "\\" );
|
||||
lstrcat( dst, src );
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// MainWindow WindowProc
|
||||
//---------------------------------------------------------------------------------------------
|
||||
long WINAPI WindowProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
|
||||
{
|
||||
switch( message )
|
||||
{
|
||||
case WM_TIMER:
|
||||
{
|
||||
int wTimerID = wParam;
|
||||
if( AnimFile.isAnimation == 1 && wTimerID == 2 )
|
||||
{
|
||||
UpdateMNG();
|
||||
SendMessage( hPicWin, WM_PAINT, 0, 0 );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
switch( LOWORD(wParam) )
|
||||
{
|
||||
case FILE_OPEN:
|
||||
LoadOFN(hwnd);
|
||||
break;
|
||||
|
||||
case FILE_SAVE:
|
||||
SaveSFN(hwnd);
|
||||
break;
|
||||
|
||||
case FILE_EXIT:
|
||||
DestroyWindow( hPicWin );
|
||||
break;
|
||||
|
||||
case HELP_ABOUT:
|
||||
Warning(
|
||||
"MNGView Sample Application for VC6.\n" \
|
||||
"This Code is Public Domain.\n" \
|
||||
"Created by Nikolaus Brennig."
|
||||
);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_ERASEBKGND:
|
||||
return 0L;
|
||||
|
||||
case WM_PAINT:
|
||||
// GetDC:
|
||||
GetClientRect( hPicWin, &rcRect );
|
||||
hdc = GetDC( hPicWin );
|
||||
|
||||
if( MemDC == 0 )
|
||||
{
|
||||
BitBlt( hdc, 0, 0, rcRect.right, rcRect.bottom, MemDC, 0, 0, BLACKNESS );
|
||||
ReleaseDC( hPicWin, hdc );
|
||||
break;
|
||||
}
|
||||
|
||||
// Erase:
|
||||
// Upper area...
|
||||
BitBlt( hdc, 0, 0, rcRect.right, (0+dy), MemDC, 0, 0, BLACKNESS );
|
||||
// Lower area...
|
||||
BitBlt( hdc, 0, (0+dy)+H, rcRect.right, rcRect.bottom - ((0+dy)+H), MemDC, 0, 0, BLACKNESS );
|
||||
// Left area...
|
||||
BitBlt( hdc, 0, 0, (0+dx), rcRect.bottom, MemDC, 0, 0, BLACKNESS );
|
||||
// Right area...
|
||||
BitBlt( hdc, (0+dx)+W, 0, rcRect.right, rcRect.bottom, MemDC, 0, 0, BLACKNESS );
|
||||
|
||||
// Show Imageframe:
|
||||
BitBlt( hdc, dx, dy, W, H, MemDC, 0, 0, SRCCOPY );
|
||||
|
||||
// Release DC...
|
||||
ReleaseDC( hPicWin, hdc );
|
||||
break;
|
||||
|
||||
case WM_HSCROLL:
|
||||
{
|
||||
int nScrollCode = (int) LOWORD(wParam); // scroll bar value
|
||||
if( nScrollCode == SB_LINELEFT ) dx += 10;
|
||||
if( nScrollCode == SB_LINERIGHT ) dx -= 10;
|
||||
SendMessage( hwnd, WM_PAINT, 0, 0 );
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_VSCROLL:
|
||||
{
|
||||
int nScrollCode = (int) LOWORD(wParam); // scroll bar value
|
||||
if( nScrollCode == SB_LINEUP ) dy += 10;
|
||||
if( nScrollCode == SB_LINEDOWN ) dy -= 10;
|
||||
SendMessage( hwnd, WM_PAINT, 0, 0 );
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_GETMINMAXINFO:
|
||||
((MINMAXINFO*)lParam)->ptMinTrackSize.x = 550;
|
||||
((MINMAXINFO*)lParam)->ptMinTrackSize.y = 450;
|
||||
return 0L;
|
||||
|
||||
case WM_DESTROY:
|
||||
if( AnimFile.isAnimation == 1 )
|
||||
CleanUpMNG();
|
||||
if( hMenu ) DestroyMenu( hMenu );
|
||||
PostQuitMessage(0);
|
||||
return 0L;
|
||||
}
|
||||
|
||||
return DefWindowProc( hwnd, message, wParam, lParam );
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// ok, initen wir mal das Window mit den Styleparametern...
|
||||
//---------------------------------------------------------------------------------------------
|
||||
BOOL InitApplication( HINSTANCE hInstance, int nCmdShow, LPSTR lpCommandLine )
|
||||
{
|
||||
WNDCLASSEX wcex;
|
||||
|
||||
ZeroMemory( &wcex, sizeof(wcex) );
|
||||
wcex.cbSize = sizeof(wcex);
|
||||
wcex.style = 0;
|
||||
wcex.lpfnWndProc = WindowProc;
|
||||
wcex.cbClsExtra = 0;
|
||||
wcex.cbWndExtra = 0;
|
||||
wcex.hInstance = hInstance;
|
||||
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(APPICON));
|
||||
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
|
||||
wcex.hbrBackground = HBRUSH(GetStockObject(BLACK_BRUSH));
|
||||
wcex.lpszMenuName = 0;
|
||||
wcex.lpszClassName = "MNGViewClass";
|
||||
wcex.hIconSm = 0;
|
||||
|
||||
if( !RegisterClassEx(&wcex) )
|
||||
return Error( "RegisterClass failed!" );
|
||||
|
||||
// Init:
|
||||
W = 0;
|
||||
H = 0;
|
||||
AnimFile.isAnimation = 0;
|
||||
MemDC = 0;
|
||||
MemImage = 0;
|
||||
DefaultMemImage = 0;
|
||||
|
||||
// Create the Window:
|
||||
hPicWin = CreateWindowEx(
|
||||
0,
|
||||
"MNGViewClass",
|
||||
TITLE,
|
||||
WS_OVERLAPPEDWINDOW|WS_SYSMENU|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|WS_HSCROLL|WS_VSCROLL,
|
||||
CW_USEDEFAULT,
|
||||
CW_USEDEFAULT,
|
||||
CW_USEDEFAULT,
|
||||
CW_USEDEFAULT,
|
||||
NULL, NULL,
|
||||
hInstance,
|
||||
NULL
|
||||
);
|
||||
if( !hPicWin )
|
||||
return Error( "Couldn't create Window!" );
|
||||
|
||||
// Load our menu...
|
||||
hMenu = LoadMenu( GetModuleHandle(NULL), MAKEINTRESOURCE(THEMENU) );
|
||||
if( hMenu == 0 ) Warning( "Unable to load Menu!" );
|
||||
SetMenu( hPicWin, hMenu );
|
||||
|
||||
InitCommonControls();
|
||||
|
||||
UpdateWindow(hPicWin);
|
||||
ShowWindow(hPicWin, SW_NORMAL);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Ok. Das ist die Startfunktion, die wird als erstes von Windows augerufen...
|
||||
//---------------------------------------------------------------------------------------------
|
||||
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
|
||||
{
|
||||
MSG msg;
|
||||
|
||||
hinst = hInstance;
|
||||
|
||||
if( !InitApplication(hInstance, nCmdShow, lpCmdLine) )
|
||||
return -1;
|
||||
|
||||
while( GetMessage(&msg, NULL, 0, 0) )
|
||||
{
|
||||
TranslateMessage(&msg);
|
||||
DispatchMessage(&msg);
|
||||
}
|
||||
|
||||
return msg.wParam;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Error
|
||||
//---------------------------------------------------------------------------------------------
|
||||
BOOL Error( const char *err )
|
||||
{
|
||||
MessageBox( hPicWin, err, TITLE, MB_ICONHAND+MB_OK );
|
||||
DestroyWindow( hPicWin );
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Warning
|
||||
//---------------------------------------------------------------------------------------------
|
||||
BOOL Warning( const char *err )
|
||||
{
|
||||
MessageBox( hPicWin, err, TITLE, MB_ICONHAND+MB_OK );
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
//---------------------------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------------------------
|
||||
//
|
||||
// MNGView Sample Application for VC6:
|
||||
// Loads all MNG/JNG/PNG Files LibMNG can do
|
||||
// Can save a single Frame to PNG Format.
|
||||
//
|
||||
// This code is public domain.
|
||||
// Created by Nikolaus Brennig, November 14th, 2000.
|
||||
// virtualnik@nol.at
|
||||
// http://cust.nol.at/ppee
|
||||
//
|
||||
// Tab: 4
|
||||
//
|
||||
//---------------------------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------------------------
|
||||
|
||||
#ifndef _MAIN_H
|
||||
#define _MAIN_H
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Includes:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#include <windowsx.h>
|
||||
#include <commdlg.h>
|
||||
#include <commctrl.h>
|
||||
#include "Resource.h"
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Defines:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
#define TITLE "MNGView Sample Application 1.0"
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// global Vars:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
extern HWND hPicWin;
|
||||
extern HINSTANCE hinst;
|
||||
extern HDC MemDC, hdc;
|
||||
extern HBITMAP MemImage, DefaultMemImage;
|
||||
extern int W, H, Bits;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int MaxFrame;
|
||||
int CurFrame;
|
||||
int Delay;
|
||||
int isAnimation;
|
||||
} ANIMFILE;
|
||||
extern ANIMFILE AnimFile;
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Function prototypes:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
BOOL Error( const char *err );
|
||||
BOOL Warning( const char *err );
|
||||
VOID catpath( char *dst, const char *src );
|
||||
|
||||
|
||||
// MNG.cpp specific:
|
||||
VOID LoadMNG( LPSTR Filename, HWND hwnd, HDC hdc );
|
||||
VOID SaveMNG( LPSTR Filename, HDC hdc, HBITMAP hBmp );
|
||||
|
||||
VOID UpdateMNG();
|
||||
VOID CleanUpMNG();
|
||||
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,105 @@
|
||||
//Microsoft Developer Studio generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "Windows.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Englisch (USA) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Menu
|
||||
//
|
||||
|
||||
THEMENU MENU DISCARDABLE
|
||||
BEGIN
|
||||
POPUP "File"
|
||||
BEGIN
|
||||
MENUITEM "Open", FILE_OPEN
|
||||
MENUITEM "Save", FILE_SAVE
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Exit", FILE_EXIT
|
||||
END
|
||||
POPUP "Help"
|
||||
BEGIN
|
||||
MENUITEM "About", HELP_ABOUT
|
||||
END
|
||||
END
|
||||
|
||||
#endif // Englisch (USA) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Deutsch (Österreich) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEA)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_GERMAN, SUBLANG_GERMAN_AUSTRIAN
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
APPICON ICON DISCARDABLE "MNG.ico"
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#include ""Windows.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // Deutsch (Österreich) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,615 @@
|
||||
//---------------------------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------------------------
|
||||
//
|
||||
// MNGView Sample Application for VC6:
|
||||
// Loads all MNG/JNG/PNG Files LibMNG can do
|
||||
// Can save a single Frame to PNG Format.
|
||||
//
|
||||
// This code is public domain.
|
||||
// Created by Nikolaus Brennig, November 14th, 2000.
|
||||
// virtualnik@nol.at
|
||||
// http://cust.nol.at/ppee
|
||||
//
|
||||
// Tab: 4
|
||||
//
|
||||
//---------------------------------------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------------------------
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include "Main.h"
|
||||
#include <libmng.h>
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// VARS:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
typedef struct
|
||||
{
|
||||
FILE *file;
|
||||
LPSTR filename;
|
||||
mng_uint32 delay;
|
||||
} mngstuff;
|
||||
|
||||
int lineWidth;
|
||||
BYTE *mngdestbuffer;
|
||||
mngstuff *mymngstuff;
|
||||
mng_handle Curmng;
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// callbacks for the mng decoder:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// memory allocation; data must be zeroed
|
||||
//---------------------------------------------------------------------------------------------
|
||||
mng_ptr mymngalloc( mng_uint32 size )
|
||||
{
|
||||
return (mng_ptr)calloc(1, size);
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// memory deallocation
|
||||
//---------------------------------------------------------------------------------------------
|
||||
void mymngfree(mng_ptr p, mng_uint32 size)
|
||||
{
|
||||
free(p);
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Stream open:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
mng_bool mymngopenstream(mng_handle mng)
|
||||
{
|
||||
mngstuff *mymng;
|
||||
|
||||
// look up our stream struct
|
||||
mymng = (mngstuff*)mng_get_userdata(mng);
|
||||
|
||||
// open the file
|
||||
mymng->file = fopen( mymng->filename, "rb" );
|
||||
if( mymng->file == NULL )
|
||||
{
|
||||
char temp[100];
|
||||
sprintf( temp, "Unable to open File: %s", mymng->filename );
|
||||
Warning( temp );
|
||||
return MNG_FALSE;
|
||||
}
|
||||
|
||||
return MNG_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Stream open for Writing:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
mng_bool mymngopenstreamwrite(mng_handle mng)
|
||||
{
|
||||
mngstuff *mymng;
|
||||
|
||||
// look up our stream struct
|
||||
mymng = (mngstuff*)mng_get_userdata(mng);
|
||||
|
||||
// open the file
|
||||
mymng->file = fopen( mymng->filename, "wb" );
|
||||
if( mymng->file == NULL )
|
||||
{
|
||||
Warning( "unable to open file!" );
|
||||
return MNG_FALSE;
|
||||
}
|
||||
|
||||
return MNG_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Stream close:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
mng_bool mymngclosestream(mng_handle mng)
|
||||
{
|
||||
return MNG_TRUE; // We close the file ourself, mng_cleanup doesnt seem to do it...
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// feed data to the decoder
|
||||
//---------------------------------------------------------------------------------------------
|
||||
mng_bool mymngreadstream( mng_handle mng, mng_ptr buffer, mng_uint32 size, mng_uint32 *bytesread )
|
||||
{
|
||||
mngstuff *mymng;
|
||||
|
||||
// look up our stream struct
|
||||
mymng = (mngstuff*)mng_get_userdata(mng);
|
||||
|
||||
// read the requested amount of data from the file
|
||||
*bytesread = fread( buffer, sizeof(BYTE), size, mymng->file );
|
||||
|
||||
return MNG_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// the header's been read. set up the display stuff
|
||||
//---------------------------------------------------------------------------------------------
|
||||
mng_bool mymngprocessheader( mng_handle mng, mng_uint32 width, mng_uint32 height )
|
||||
{
|
||||
// Store values:
|
||||
W = width; H = height;
|
||||
Bits = 24;
|
||||
lineWidth = ((((W * Bits) + 31) >> 5) << 2);
|
||||
|
||||
// Create decoderbuffer:
|
||||
mngdestbuffer = new BYTE[lineWidth*H];
|
||||
if( mngdestbuffer == 0 ) Warning( "Out of Memory!" );
|
||||
|
||||
// Create the MemoryBitmap now, we store there the image...
|
||||
if( DefaultMemImage ) SelectObject( MemDC, DefaultMemImage );
|
||||
if( MemDC ) DeleteDC( MemDC );
|
||||
if( MemImage ) DeleteObject( MemImage );
|
||||
hdc = GetDC( hPicWin );
|
||||
MemDC = CreateCompatibleDC( 0 );
|
||||
MemImage = CreateCompatibleBitmap( hdc, W, H );
|
||||
DefaultMemImage = (HBITMAP)SelectObject( MemDC, MemImage );
|
||||
ReleaseDC( hPicWin, hdc );
|
||||
|
||||
// Set output style:
|
||||
mng_set_canvasstyle( mng, MNG_CANVAS_BGR8 );
|
||||
|
||||
return MNG_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// return a row pointer for the decoder to fill
|
||||
//---------------------------------------------------------------------------------------------
|
||||
mng_ptr mymnggetcanvasline( mng_handle mng, mng_uint32 line )
|
||||
{
|
||||
return (mng_ptr)(mngdestbuffer + (lineWidth*(H-1-line)));
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// timer
|
||||
//---------------------------------------------------------------------------------------------
|
||||
mng_uint32 mymnggetticks(mng_handle mng)
|
||||
{
|
||||
return (mng_uint32)GetTickCount();
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Refresh:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
mng_bool mymngrefresh( mng_handle mng, mng_uint32 x, mng_uint32 y, mng_uint32 w, mng_uint32 h )
|
||||
{
|
||||
PBITMAPINFO bmpi = (PBITMAPINFO)LocalAlloc(LPTR, sizeof(BITMAPINFOHEADER));
|
||||
bmpi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
|
||||
bmpi->bmiHeader.biWidth = W;
|
||||
bmpi->bmiHeader.biHeight = H;
|
||||
bmpi->bmiHeader.biPlanes = 1;
|
||||
bmpi->bmiHeader.biCompression = BI_RGB;
|
||||
bmpi->bmiHeader.biBitCount = Bits;
|
||||
bmpi->bmiHeader.biSizeImage = 0;
|
||||
bmpi->bmiHeader.biClrUsed = 0;
|
||||
bmpi->bmiHeader.biClrImportant = 0;
|
||||
|
||||
// Now blt the Image onto our MemDC...
|
||||
StretchDIBits( MemDC, 0, 0, W, H, 0, 0, W, H, mngdestbuffer, bmpi, 0, SRCCOPY );
|
||||
LocalFree((PBITMAPINFO)bmpi);
|
||||
|
||||
return MNG_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// interframe delay callback
|
||||
//---------------------------------------------------------------------------------------------
|
||||
mng_bool mymngsettimer(mng_handle mng, mng_uint32 msecs)
|
||||
{
|
||||
mngstuff *mymng;
|
||||
|
||||
// look up our stream struct
|
||||
mymng = (mngstuff*)mng_get_userdata(mng);
|
||||
|
||||
// set the timer for when the decoder wants to be woken
|
||||
mymng->delay = msecs;
|
||||
|
||||
return MNG_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Error Callback;
|
||||
//---------------------------------------------------------------------------------------------
|
||||
mng_bool mymngerror(
|
||||
mng_handle mng, mng_int32 code, mng_int8 severity,
|
||||
mng_chunkid chunktype, mng_uint32 chunkseq,
|
||||
mng_int32 extra1, mng_int32 extra2, mng_pchar text
|
||||
)
|
||||
{
|
||||
char chunk[5];
|
||||
|
||||
// pull out the chuck type as a string
|
||||
// FIXME: does this assume unsigned char?
|
||||
chunk[0] = (char)((chunktype >> 24) & 0xFF);
|
||||
chunk[1] = (char)((chunktype >> 16) & 0xFF);
|
||||
chunk[2] = (char)((chunktype >> 8) & 0xFF);
|
||||
chunk[3] = (char)((chunktype ) & 0xFF);
|
||||
chunk[4] = '\0';
|
||||
|
||||
// output the error:
|
||||
char temp[1000];
|
||||
sprintf( temp, "error playing chunk %s (%d)", chunk, chunkseq );
|
||||
Warning( temp );
|
||||
|
||||
// No need for anymore decoding:
|
||||
KillTimer( hPicWin, 2 );
|
||||
|
||||
// error occured;
|
||||
return MNG_FALSE;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Load a MNG/JNG/PNG file:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
VOID LoadMNG( LPSTR Filename, HWND hwnd, HDC hdc )
|
||||
{
|
||||
// allocate our stream data structure
|
||||
mymngstuff = (mngstuff*)calloc(1, sizeof(*mymngstuff));
|
||||
if( mymngstuff == NULL )
|
||||
{
|
||||
Warning( "Unable to allocate MNG struct!" );
|
||||
return;
|
||||
}
|
||||
|
||||
// pass the name of the file we want to play
|
||||
mymngstuff->filename = Filename;
|
||||
|
||||
// set up the mng decoder for our stream
|
||||
Curmng = mng_initialize(mymngstuff, mymngalloc, mymngfree, MNG_NULL);
|
||||
if(Curmng == MNG_NULL)
|
||||
{
|
||||
free(mymngstuff);
|
||||
Warning( "MNG Init Error!" );
|
||||
return;
|
||||
}
|
||||
|
||||
// No need to store chunks:
|
||||
mng_set_storechunks(Curmng, MNG_FALSE);
|
||||
|
||||
// Set the colorprofile, lcms uses this:
|
||||
mng_set_srgb( Curmng, MNG_TRUE );
|
||||
char DestDir[2048];
|
||||
SearchPath( NULL, "MNGVIEW.EXE", NULL, sizeof(DestDir), DestDir, NULL );
|
||||
lstrcpyn( DestDir, DestDir, lstrlen(DestDir)-lstrlen("MNGVIEW.EXE") );
|
||||
catpath( DestDir, "sRGB.icm" );
|
||||
FILE *RGBfile = fopen( DestDir, "rb" );
|
||||
if( RGBfile == 0 )
|
||||
{
|
||||
mng_cleanup(&Curmng);
|
||||
free(mymngstuff);
|
||||
Warning( "Need file \"sRGB.icm\" !" );
|
||||
return;
|
||||
}
|
||||
fclose(RGBfile);
|
||||
mng_set_outputprofile(Curmng, DestDir);
|
||||
|
||||
// Set white as background color:
|
||||
WORD Red = (255 << 8) + 255;
|
||||
WORD Green = (255 << 8) + 255;
|
||||
WORD Blue = (255 << 8) + 255;
|
||||
mng_set_bgcolor( Curmng, Red, Green, Blue );
|
||||
|
||||
// If PNG Background is available, use it:
|
||||
mng_set_usebkgd( Curmng, MNG_TRUE );
|
||||
|
||||
// set the callbacks
|
||||
mng_setcb_errorproc(Curmng, mymngerror);
|
||||
mng_setcb_openstream(Curmng, mymngopenstream);
|
||||
mng_setcb_closestream(Curmng, mymngclosestream);
|
||||
mng_setcb_readdata(Curmng, mymngreadstream);
|
||||
mng_setcb_gettickcount(Curmng, mymnggetticks);
|
||||
mng_setcb_settimer(Curmng, mymngsettimer);
|
||||
mng_setcb_processheader(Curmng, mymngprocessheader);
|
||||
mng_setcb_getcanvasline(Curmng, mymnggetcanvasline);
|
||||
mng_setcb_refresh(Curmng, mymngrefresh);
|
||||
|
||||
// Read the stuff:
|
||||
mng_readdisplay(Curmng);
|
||||
|
||||
AnimFile.CurFrame = mng_get_layercount( Curmng );
|
||||
AnimFile.MaxFrame = mng_get_framecount( Curmng );
|
||||
AnimFile.isAnimation = 1;
|
||||
AnimFile.Delay = mymngstuff->delay;
|
||||
|
||||
// Start the whole thing:
|
||||
SetTimer( hPicWin, 2, mymngstuff->delay, 0 );
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Called when loading a new file or Appquit:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
void CleanUpMNG()
|
||||
{
|
||||
KillTimer( hPicWin, 2 );
|
||||
mng_cleanup(&Curmng);
|
||||
fclose( mymngstuff->file );
|
||||
free(mymngstuff);
|
||||
delete [] mngdestbuffer;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Called when timer says next frame/layer/update is needed:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
void UpdateMNG()
|
||||
{
|
||||
mymngstuff->delay = 0;
|
||||
if( MNG_NEEDTIMERWAIT == mng_display_resume(Curmng) )
|
||||
{
|
||||
KillTimer( hPicWin, 2 );
|
||||
SetTimer( hPicWin, 2, mymngstuff->delay, 0 );
|
||||
}
|
||||
else
|
||||
{
|
||||
CleanUpMNG();
|
||||
AnimFile.CurFrame = -1;
|
||||
AnimFile.MaxFrame = -1;
|
||||
AnimFile.isAnimation = -1;
|
||||
AnimFile.Delay = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// MNG WRITING STUFF:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
int OffsetX=0,OffsetY=0,OffsetW=0,OffsetH=0;
|
||||
BYTE *srcbuffer=0, *tmpbuffer;
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Callback for writing data:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
mng_bool mymngwritedata( mng_handle hMNG, mng_ptr pBuf, mng_uint32 iSize, mng_uint32 *iWritten )
|
||||
{
|
||||
mngstuff *pMydata = (mngstuff*)mng_get_userdata(hMNG);
|
||||
|
||||
*iWritten = fwrite( pBuf, sizeof(BYTE), iSize, pMydata->file );
|
||||
|
||||
if( *iWritten < iSize )
|
||||
{
|
||||
Warning( "write error" );
|
||||
return MNG_FALSE;
|
||||
}
|
||||
|
||||
return MNG_TRUE;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// swap Rs and Bs...
|
||||
//---------------------------------------------------------------------------------------------
|
||||
BOOL RGBFromBGR( BYTE *buf, UINT widthPix, UINT height )
|
||||
{
|
||||
UINT col, row;
|
||||
LPBYTE pRed, pBlu;
|
||||
BYTE tmp;
|
||||
|
||||
if (buf==NULL)return FALSE;
|
||||
|
||||
INT TmpRow = 0;
|
||||
INT WidthBytes = widthPix*3;
|
||||
if(WidthBytes & 0x003) WidthBytes = (WidthBytes | 3) + 1;
|
||||
INT OurCol = 0;
|
||||
for( row=0; row<height; row++ )
|
||||
{
|
||||
for( col=0; col<widthPix; col++ )
|
||||
{
|
||||
pRed = buf + TmpRow + OurCol;
|
||||
pBlu = pRed + 2;
|
||||
|
||||
// swap red and blue
|
||||
tmp = *pBlu;
|
||||
*pBlu = *pRed;
|
||||
*pRed = tmp;
|
||||
|
||||
OurCol += 3;
|
||||
}
|
||||
TmpRow += WidthBytes;
|
||||
OurCol = 0;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Creates the srcuffer filled with data for saving:
|
||||
//---------------------------------------------------------------------------------------------
|
||||
VOID CreateSrcBuffer( int Frame, int FrameCount, HBITMAP hBmp2 )
|
||||
{
|
||||
PBITMAPINFO pbmi;
|
||||
BITMAP bmp;
|
||||
|
||||
srcbuffer=0;
|
||||
|
||||
// Get WidthBytes...
|
||||
INT WidthBytes = W*3;
|
||||
|
||||
INT LineWidth = W*3;
|
||||
if(LineWidth & 0x003) LineWidth = (LineWidth | 3) + 1;
|
||||
|
||||
// Bitmapstruct init...
|
||||
GetObject( hBmp2, sizeof(BITMAP), (LPSTR)&bmp );
|
||||
pbmi = (PBITMAPINFO) LocalAlloc(LPTR, sizeof(BITMAPINFOHEADER));
|
||||
|
||||
// Initialize the fields in the BITMAPINFO structure.
|
||||
pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
|
||||
pbmi->bmiHeader.biWidth = bmp.bmWidth;
|
||||
pbmi->bmiHeader.biHeight = -bmp.bmHeight;
|
||||
pbmi->bmiHeader.biPlanes = bmp.bmPlanes;
|
||||
pbmi->bmiHeader.biBitCount = 24;
|
||||
pbmi->bmiHeader.biCompression = BI_RGB;
|
||||
pbmi->bmiHeader.biSizeImage = LineWidth * H * FrameCount;
|
||||
pbmi->bmiHeader.biClrImportant = 0;
|
||||
|
||||
// Alloc Memory...
|
||||
srcbuffer = 0;
|
||||
srcbuffer = new BYTE[LineWidth*H*FrameCount];
|
||||
if( srcbuffer == 0 )
|
||||
Warning( "srcbuffer == 0!" );
|
||||
|
||||
// get the buffer and modify the format:
|
||||
if( 0 == GetDIBits( MemDC, hBmp2, 0, (WORD) (H*FrameCount), srcbuffer, pbmi, 0 ) )
|
||||
Warning( "no GetDIBits!!!" );
|
||||
RGBFromBGR( srcbuffer, W, H*FrameCount );
|
||||
if( srcbuffer == 0 )
|
||||
Warning( "srcbuffer == 0!" );
|
||||
|
||||
// Freee.
|
||||
LocalFree((PBITMAPINFO)pbmi);
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Writes a single PNG datastream
|
||||
//---------------------------------------------------------------------------------------------
|
||||
VOID WritePNG( mng_handle hMNG, int Frame, int FrameCount )
|
||||
{
|
||||
BYTE *dstbuffer;
|
||||
INT LineWidth;
|
||||
INT WidthBytes;
|
||||
|
||||
OffsetX=0; OffsetY=0; OffsetW=W; OffsetH=H;
|
||||
|
||||
// Get WidthBytes...
|
||||
WidthBytes = W*3;
|
||||
LineWidth = W*3;
|
||||
if(LineWidth & 0x003) LineWidth = (LineWidth | 3) + 1;
|
||||
|
||||
tmpbuffer = new BYTE[(WidthBytes+1)*OffsetH];
|
||||
if( tmpbuffer == 0 ) Warning( "Out of Memory!" );
|
||||
|
||||
// Write DEFI chunk.
|
||||
mng_putchunk_defi( hMNG, 0, 0, 0, MNG_TRUE, OffsetX, OffsetY, MNG_FALSE, 0, 0, 0, 0 );
|
||||
|
||||
// Write Header:
|
||||
mng_putchunk_ihdr(
|
||||
hMNG,
|
||||
OffsetW, OffsetH,
|
||||
MNG_BITDEPTH_8/*iBitdepth*/,
|
||||
MNG_COLORTYPE_RGB/*iColortype*/,
|
||||
MNG_COMPRESSION_DEFLATE/*iCompression*/,
|
||||
MNG_FILTER_ADAPTIVE/*iFilter*/,
|
||||
MNG_INTERLACE_NONE /*iInterlace*/
|
||||
);
|
||||
|
||||
// transfer data, add Filterbyte:
|
||||
for( int Row=0; Row<OffsetH; Row++ )
|
||||
{
|
||||
// First Byte in each Scanline is Filterbyte: Currently 0 -> No Filter.
|
||||
tmpbuffer[Row*(WidthBytes+1)]=0;
|
||||
|
||||
// Copy the scanline:
|
||||
memcpy(
|
||||
tmpbuffer+Row*(WidthBytes+1)+1,
|
||||
srcbuffer+((OffsetY+Row)*(LineWidth))+OffsetX,
|
||||
WidthBytes
|
||||
);
|
||||
}
|
||||
|
||||
// Free srcbuffer if not animated GIF:
|
||||
delete [] srcbuffer;
|
||||
|
||||
// Compress data with ZLib (Deflate):
|
||||
dstbuffer = new BYTE[(WidthBytes+1)*OffsetH];
|
||||
if( dstbuffer == 0 ) Warning( "Out of Memory!" );
|
||||
DWORD dstbufferSize=(WidthBytes+1)*OffsetH;
|
||||
|
||||
// Compress data:
|
||||
if( Z_OK != compress2(
|
||||
(Bytef *)dstbuffer, (ULONG *)&dstbufferSize,
|
||||
(const Bytef*)tmpbuffer, (ULONG) (WidthBytes+1)*OffsetH,
|
||||
9
|
||||
)) Warning( "Unable to compress imagedata!" );
|
||||
|
||||
// Write Data into MNG File:
|
||||
mng_putchunk_idat( hMNG, dstbufferSize, (mng_ptr*)dstbuffer);
|
||||
mng_putchunk_iend(hMNG);
|
||||
|
||||
// Free the stuff:
|
||||
delete [] tmpbuffer;
|
||||
delete [] dstbuffer;
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------------------------
|
||||
// Writes a MNG (24bit)
|
||||
//---------------------------------------------------------------------------------------------
|
||||
VOID SaveMNG( LPSTR Filename, HDC hdc, HBITMAP hBmp )
|
||||
{
|
||||
mng_handle hMNG;
|
||||
|
||||
// check if currently a MNG file is loaded:
|
||||
if( AnimFile.isAnimation == 1 )
|
||||
CleanUpMNG();
|
||||
|
||||
// Creates the srcbuffer for imagedata:
|
||||
CreateSrcBuffer( 0, 1, hBmp );
|
||||
|
||||
// allocate our stream data structure
|
||||
mymngstuff = (mngstuff*)calloc(1, sizeof(*mymngstuff));
|
||||
if( mymngstuff == NULL )
|
||||
{
|
||||
Warning( "Cannot allocate data buffer." );
|
||||
return;
|
||||
}
|
||||
|
||||
// pass the name of the file we want to play
|
||||
mymngstuff->filename = Filename;
|
||||
|
||||
// init the lib:
|
||||
hMNG = mng_initialize((mng_ptr)mymngstuff, mymngalloc, mymngfree, MNG_NULL);
|
||||
if( !hMNG )
|
||||
{
|
||||
Warning( "Cannot initialize libmng." );
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
mng_setcb_openstream(hMNG, mymngopenstreamwrite );
|
||||
mng_setcb_closestream(hMNG, mymngclosestream);
|
||||
mng_setcb_writedata(hMNG, mymngwritedata);
|
||||
|
||||
// Write File:
|
||||
mng_create(hMNG);
|
||||
|
||||
// Just a single Frame (save a normal PNG):
|
||||
WritePNG( hMNG, 0, 1 );
|
||||
|
||||
// Now write file:
|
||||
mng_write(hMNG);
|
||||
|
||||
// Free the stuff:
|
||||
fclose( mymngstuff->file );
|
||||
mng_cleanup(&hMNG);
|
||||
}
|
||||
|
||||
free( mymngstuff );
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Developer Studio generated include file.
|
||||
// Used by Main.rc
|
||||
//
|
||||
#define THEMENU 102
|
||||
#define APPICON 200
|
||||
#define FILE_OPEN 40002
|
||||
#define FILE_EXIT 40003
|
||||
#define HELP_ABOUT 40004
|
||||
#define FILE_SAVE 40005
|
||||
#define IDC_STATIC -1
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 104
|
||||
#define _APS_NEXT_COMMAND_VALUE 40006
|
||||
#define _APS_NEXT_CONTROL_VALUE 1001
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
Binary file not shown.
@@ -0,0 +1,23 @@
|
||||
MSVC project files for libmng.dll
|
||||
---------------------------------
|
||||
|
||||
Contribution by Chad Austin
|
||||
(This README by Gerard Juyn)
|
||||
|
||||
These project files were kindly donated by Chad. Please note that it
|
||||
requires jpeglib, zlib and lcms to be in a directory which is at the
|
||||
same level as the libmng directory.
|
||||
|
||||
I'm not sure how things work, since I don't have access to MSVC, so
|
||||
it could be this needs a little tweaking, considering the location
|
||||
where I put contributions.
|
||||
|
||||
As to the DLL itself. If you want to distribute libmng.dll with your
|
||||
Application and store it in the standard Windows system-directory, you
|
||||
*must* use the libmng.dll provided in this distribution. *Not* a dll
|
||||
you have compiled yourself, unless you place this dll in the same
|
||||
directory as your own Application!!!
|
||||
|
||||
Thanks,
|
||||
|
||||
Gerard
|
||||
@@ -0,0 +1,465 @@
|
||||
# Microsoft Developer Studio Project File - Name="libmng" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
|
||||
|
||||
CFG=libmng - 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 "libmng.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 "libmng.mak" CFG="libmng - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "libmng - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
|
||||
!MESSAGE "libmng - Win32 Debug" (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)" == "libmng - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBMNG_EXPORTS" /YX /FD /c
|
||||
# ADD CPP /nologo /MD /W2 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBMNG_EXPORTS" /D "MNG_BUILD_DLL" /YX /FD /c
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /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 /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 /dll /machine:I386
|
||||
|
||||
!ELSEIF "$(CFG)" == "libmng - 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 /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBMNG_EXPORTS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /MDd /W2 /Gm /GX /ZI /Od /I "zlib" /I "jpeg" /I "lcms/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBMNG_EXPORTS" /D "MNG_BUILD_DLL" /YX /FD /GZ /c
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /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 /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 /dll /debug /machine:I386 /pdbtype:sept
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "libmng - Win32 Release"
|
||||
# Name "libmng - Win32 Debug"
|
||||
# Begin Group "mng"
|
||||
|
||||
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_callback_xs.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_chunk_io.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_chunk_prc.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_chunk_xs.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_cms.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_display.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_dither.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_error.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_filter.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_hlapi.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_jpeg.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_object_prc.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_pixels.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_prop_xs.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_read.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_trace.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_write.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\libmng_zlib.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "jpeg"
|
||||
|
||||
# PROP Default_Filter ""
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jcapimin.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jcapistd.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jccoefct.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jccolor.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jcdctmgr.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jchuff.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jcinit.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jcmainct.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jcmarker.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jcmaster.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jcomapi.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jcparam.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jcphuff.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jcprepct.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jcsample.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jctrans.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdapimin.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdapistd.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdatadst.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdatasrc.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdcoefct.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdcolor.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jddctmgr.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdhuff.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdinput.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdmainct.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdmarker.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdmaster.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdmerge.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdphuff.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdpostct.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdsample.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jdtrans.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jerror.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jfdctflt.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jfdctfst.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jfdctint.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jidctflt.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jidctfst.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jidctint.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jidctred.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jmemmgr.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jmemnobs.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jquant1.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jquant2.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\jpgsrc6b\jutils.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "lcms"
|
||||
|
||||
# PROP Default_Filter ""
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\lcms\source\CMSCNVRT.C
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\lcms\source\CMSERR.C
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\lcms\source\CMSGAMMA.C
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\lcms\source\CMSGMT.C
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\lcms\source\cmsintrp.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\lcms\source\cmsio1.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\lcms\source\CMSLUT.C
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\lcms\source\CMSMATSH.C
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\lcms\source\cmsmtrx.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\lcms\source\CMSPACK.C
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\lcms\source\cmspcs.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\lcms\source\CMSWTPNT.C
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\lcms\source\cmsxform.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# Begin Group "zlib"
|
||||
|
||||
# PROP Default_Filter ""
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\zlib\adler32.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\zlib\compress.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\zlib\crc32.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\zlib\deflate.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\zlib\infblock.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\zlib\infcodes.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\zlib\inffast.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\zlib\inflate.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\zlib\inftrees.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\zlib\infutil.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\zlib\trees.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\zlib\uncompr.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\..\..\zlib\zutil.c
|
||||
# End Source File
|
||||
# End Group
|
||||
# End Target
|
||||
# End Project
|
||||
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "libmng"=".\libmng.dsp" - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Reference in New Issue
Block a user