Results for "Author: arne elster"
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.
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.
This shows an approach on adding a Clone method to classes. Uses some of Paul Catons Subclassing Code to create an invisible Clone Constructor.
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.
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).
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.
This is just a little demonstration on how to do frequency detection on digital audio signals. You can generate a signal from a DTMF sign (numbers, chars), which consists of 2 frequencies, and the program will detect it by using a Görtzel algorithm. Frequencies + Detection musn't always mean FFT. Sometimes there are faster ways.
Uses the waveIn API to record audio signals. You can change the recording source while recording and change its volume. The recorded samples get saved to a WAV file, with full ACM support, so you can even use an MP3 codec, if installed. The recorded samples get visualized through a frequency spectrum (Ulli's FFT class) and an amplitudes curve. Tested with XP. /// Update: Replaced the common dialog control with a class by Bill Bither (found at PSC), added some comments to the code, cleaned up a bit /// Update: fake window will be ceated only on start of recording, secured some parts in WaveInRecorder where pointers are used /// Update...: replaced subclassing with Paul Caton's technique /// update...: mixer functions should work fine now, uses a real mixer handle now ;), also the inverted line selection bug is fixed /// and once more...: mixer functions should be really stable now, added effects (echo, amplify, phase shift, 7 band graphical equalizer). Tipp: add echo, give it a short length (about 4-5 pixels to the left from the default) and set the echo amp to 6, makes your recording sound like a robot :)
The Flamed Lib (or simply Flamed v4) is an Active X DLL with plenty of functions for you to deal with CD/DVD-ROM programming. Comes with a complete CD Burner application and many little test projects. Features: create Data CDs (multisession) and Audio CDs, burn ISO images, data track to ISO image, session to BIN/CUE, extract tracks from BIN/CUE images, BIN to ISO conversion, audio tracks to WAV/MP3 (uses the ACM), CD-Text reader, FreeDB query, drive/disk/disk content information, CD player (digital/analog), CD-RW eraser, drive monitor (fires if medium removed/arrived) and more. The drive compatibility was increased once more, you shouldn't get the "Could not send write parameters page" error anymore. For any other questions read "readme.txt".
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.
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. ;)
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.
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)
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
A list with multiple columns. Multiselect, drag'n'drop item reordering, icons with alpha (LaVolpe's 32bpp dib), checkboxes, simple sorting, own custom styles.