Advertisement

Results for "Author: arne elster"

4_2005-2006 #169055
process injection/API hooking

This shows you 2 API hooking techniques. IAT hooking and function redirecting, also how to inject your code into another VB process and hook a function remotely. Thanks to Ion Ion Alex Ionescu for his injection demo. It's important that you read the readme in the "inject" directory.

4_2005-2006 #169056
events for late-bound objects

VB has good event handling functions. The great WithEvents and VBControlExtender. The bad thing about them is, WithEvents can only be used for early binding, and the VBControlExtender is only for controls. So what to do in case you have an object like "InternetExplorer.Application" and want to catch its "Stop" event? Right, you guessed it: grapple with some nasty COM interfaces :) In this last part of my low level COM project I want to show you how to use IConnectionPoint to recieve events from objects. Oh, and you may see some equalities between this submission and the event collection by Edanmo. Edanmo has some functions in there I really was frightened to code. ;)

4_2005-2006 #169057
type library browser

We all know VB`s lovely object browser. Just select a library and view its types and their members. But - how can VB get that names? There were several attempts, but they all used the same lib the VB IDE uses (at least I think it does) - TLBINF32.dll. This is an experiment on how to do it without this lib. The trick is: a COM DLL has a type library stored in it. The API oleaut32.LoadTypeLib() lets you load it and returns an ITypeLib interface to you. From that point you just have to know the functions ITypeLib and ITypeInfo offer, the rest is frippery ;) This class can handle functions, their parameters, enums, udts, coclasses and aliases. But its only an experiment and for learning purposes, not meant to be a fully working type library browser.

4_2005-2006 #169058
various low level COM experiments

Due to some sort of misunderstanding this got removed last time, so here it is again... We all know, VB is full of automation. Every object, every array, every string. But VB does an excellent job in hiding all this from us. Here are 3 projects: 1) create any interfaces without type libs 2) show/manipulate safearrays, create any 1D arrays from pointers 3) the interesting ITypeInfo, which will let you enumerate all memebers of an object/interface (that's roughly what TLBINF32.dll does)

4_2005-2006 #169059
function plotter

A function plotter with GDI+ anti-aliasing. Handles brackets, functions and variables. Note: This needs a GDI+ type library which is included in the zip archive. Make sure it's referenced in the project. // 20. feb 07: added missing type lib "bstrapi.tlb". // 20. feb 07: wrong axes labeling fixed

4_2005-2006 #169060
custom listview

A list with multiple columns. Multiselect, drag'n'drop item reordering, icons with alpha (LaVolpe's 32bpp dib), checkboxes, simple sorting, own custom styles.

5_2007-2008 #190489
X86 32 Bit Assembler

This is an experimental 32 Bit Assembler. Originally planned for me to learn assembly language it turned out way bigger then I thought. It supports most of the standard, FPU, MMX, SSE and 3DNow instructions, can write Windows executables, has WinAPI support, can assemble SIB expressions (for example [eax*2+ebx-10]) and of course has labels. There are 2 examples in the zip file: An editor for writing Windows Executables and an example of assembling source code at runtime to directly call it (a touch of inline assembler). //Update: The examples had German comments and there was a small bug in the console example.

5_2007-2008 #190490
FIR filters and convolution

This demo shows how to compute a low/highpass FIR filter and use it on a time-domain signal trough convolution. It also shows frequency spectrum of the filter kernel and the filtered signal.

5_2007-2008 #190491
device information (USB detection)

This reads the bus type of all drives associated with a drive letter. This way you can safely detect removable USB devices. It also has a feature to safely eject a device from the system (taken from activevb.de) and automatically displays arrival and removal of new devices. Should work on NT/2k/XP.

5_2007-2008 #190492
MP3 info with VBR support

This class reads information about MP3s. It supports VBR (both XING and VBRI) and skips ID3v2 and ID3v1 for a pretty accurate calculation of the duration.

5_2007-2008 #191560
Wave Concatenation class

An easy to use class to concatenate PCM wavs. Uses the ACM so you can even concat wavs with different sample rates.

5_2007-2008 #191561
Dealing with C DLLs

Ever stumbled upon the error "Bad DLL Calling Convention"? Was it when you tried to declare a function contained in a DLL? Then this might be a solution for you.

5_2007-2008 #191562
DTMF detection

A little experiment on how to detect DTMF in a PCM signal. Uses my WaveIn recorder class and the DTMF tone generator of Bobbek (codeid 64048). With the DTMF tone generator you play some tones, and with the DTMF detector you catch them. In order for this work you have to select the correct mixer line (mostly "mono/stereo mix" or "waveout") and you have to find out for which volume it works best. On my computer the mixer line volume has to be about 20%.

5_2007-2008 #191563
Stream MP3/WMA from resources

This shows how to play MP3s and WMAs directly from resources without writing them to disk first. For decoding it uses the functions of the Windows Media Format SDK v9, wich ships with all Windows Media Players >= v9 (or google for "wmfdist.exe"). It allocates some memory, copies the sound from the resource to that memory, and plays it using DirectSound. You can control volume, balance and position. As the DirectSound stream uses an Windows API timer, debugging is pretty hard. You might be better off if you put the whole playback stuff into a DLL.

5_2007-2008 #191564
Plugin Framework

This class finds and loads plugins, you just specify the interface the plugins have to implement. //// How it works: You create a new ActiveX DLL, add a class to it, and enter all the properties and functions your plugins have to implement (you design the plugin interface). After compiling, you create a plugin (again an ActiveX DLL) which implements ('Implements' keyword) the interface, and add some code to it. After compiling this DLL you tell the Plugin Framework which interface your plugins implement and let it search for it. The Framework will look in the directory you specified, register all DLLs and if one of the classes in a DLL implements the plugin interface, the Framework will return it to you. No need for CreateObject anymore. /// How to get this demo working: Compile the plugins in the "plugins" directory, and place the DLLs there. Then simply run "Projekt1.vbp", but make sure you referenced the typelib in the "typelib" directory.

5_2007-2008 #191565
DirectSound Stream

An apporach on how to do audio streaming with DirectSound. Supports WAV (+ ACM Codecs), MP3 and WMA. For MP3 and WMA, you need to have WMP >= 9, the WMF SDK >= v9 (Google), or the WMF Redistributable ("wmfdist.exe", Google). Buffer system is pretty stable. I guess this is pretty close to Winamp's playback method.

5_2007-2008 #191566
Cloning classes

This shows an approach on adding a Clone method to classes. Uses some of Paul Catons Subclassing Code to create an invisible Clone Constructor.

5_2007-2008 #191567
Audio Mixer Control Class

This class lets you easily modify the volume or balance of Mixer lines or the whole playback/recording and also lets you select the recording source.

5_2007-2008 #191568
Data CD Writer

This creates ISO9660 file system images and optionally burns them on CD-R(W) (2 projects). FlamedLib is still pretty buggy, so I decided to rewrite the ISO9660 class. Now it should be a lot faster and also a lot safer. /// 1. After downloading, open ISO9660\prjISOImageWriter.vbp. If VB can't find something, add a reference to typelibs\OleGuids3.tlb. Now the project should load. /// 2. Add some files or directories (you can also explore the right click menus...), when you're finished with your image, click on the picture on the top left and chose "Create ISO Image". You shouldn't add big files to the image as this would take some time to copy it to the image. /// 3. Open Burn\prjISO.vbp. If you're on a Win 9x/Me machine, you must have installed an ASPI layer (preferably the one from Adaptec, probably already installed), if you're using any newer Windows version, make sure you got Administrator priviledges, else you need a working ASPI layer (quite a hard task on Win XP). Chose your CD writer and the ISO image to write to the CD-R(W), and click "Write image". The write speed is defined as 8x, but you can easily change it in the source (if you got the guts) /////////////////// This project uses the generic commands specified by the T10 technical comittee, all drives produced after 2000/2001 should be compatible. If not, there won't be any damage (maybe your CD-R will be unusable afterwards).

5_2007-2008 #191569
WaveOut Streaming

Update (28.10.06): Added support for looping, fixed some small bugs, added a new class "WAVPlayer" which simplifies streaming playback a lot. ///// Shows how to stream sound data to the WaveOut. Supports the WAV file format and the ACM (audio compression manager), to handle compressed WAV formats. Uses Paul Catons subclassing code. I tried to keep it as reusable as possible, so there are 2 classes: One reads (or decodes) data from WAV files, and one sends it to the WaveOut.

Languages
Top Categories
Global Discovery