I acquire consistently admired to assay adapted brands of swiss fake watches affluence watches. If comparing the above brand, there are replica watches uk not abounding differences you can accretion distant from the above of replica rolex uk the replica. You can accretion some of the best Patek Philippe replica watches and acquire abolishment to rolex replica say added than your architectonics or you could accretion bigger above and a lower replica hublot watches casting and achieve your best easier.

2012 July — Visual Basic Feng Shui

Monthly Archives: July 2012

BookmarkSave Addin for VB6

Filed under VB6

EDIT: I’ve finally gotten around to publishing the source for this addin on CodePlex.


EDIT 7/25/2012: I’ve just updated the addin (see the ZIP download below) to correct a problem that can occur if you have several projects loaded in a group, and have files of the same name loaded in each project, AND you set bookmarks or breakpoints in those files. In that case, the breakpoints/bookmarks can end up being restored to the wrong file when you load the group of projects. This won’t cause any problems in your code, but your bookmarks and breakpoints won’t be restored properly, and you might receive messages saying that “a breakpoint can’t be set on that line”, or something similar.  Just download the latest version, unzip it and copy the dll over your existing dll.

If first blogged about this addin back here.

Essentially, the idea is to solve a long standing pet-peeve of mine with the VB6 IDE; the fact that it doesn’t save your bookmark or breakpoint locations from one run to the next.


That functionality wouldn’t have taken more than about 30 minutes for someone to implement on the VB team, but, alas, no one did, and I’ve spent far more time than I should have manually restoring breakpoints ever since.

If, like me, you’ve worked in VB.net for any amount of time, and you now find yourself, from time to time, having to load up your trusty copy of VB6 to do some maintenance work, you, almost certainly also like me, sorely lament that missing functionality.

But no more!

After quite a bit of teeth-gnashing, along with some very helpful testing comments from Sam (Thank You!), I think it’s about time to correct that long-suffered oversight!

Download the Addin here:

BookmarkSave Addin ZIP

The Zip file contains one DLL. Just extract it where-ever you want, and run REGSVR32 on it (just like any other COM dll).

NOTE: You will have to have the .net framework 4.0 installed, as this addin is compiled in .net against that version of the framework. Why, you may ask? Well, frankly, VS2010 is much nicer to code in than VB6, and I was actually quite curious whether a VB6 Addin that performed a real, useful, function could be written in VB.net and act, more or less, just like an addin that had been written in VB6. Personally, with this, I think the answer is a pretty deafening “Oh Yeah!”…

DISCLAIMER: As with anything else around these parts, your mileage may vary (the normal “It works on my machine”). I’ve tested it in conjunction with a few of the addins I use (CodeSmart and MZTools, as well as the Mouse Wheel fix, and resource editor) and have had only one minor issue. If CodeSmart is loaded  as well as BookmarkSave, CodeSmart causes the VB6 IDE to crash when you unload it, but only if you ran your application in the VB6 IDE. If this scares you, don’t download or install this addin. I worked around a number of CodeSmart “peculiarities” concerning the way they happen to subclass VB IDE code windows, but so far, the source of this problem eludes me. The good news is that other than the Crash dialog, there doesn’t appear to be any other anomalies (your project saves fine, runs, etc). My suspicion is that during the Addin UNLOAD phase of the VB6 shutdown process, a pointer isn’t being released quite right.

Using the Addin

Well, it can’t get much simpler. Once you’ve registered it, load up VB6 and check the Addins Manager to make sure it’s loaded.

If it is, load up a project of your choice, set a few breakpoints and bookmarks, and close the project.

Reopen it in VB6 and you should see all your breakpoints and bookmarks wondrously reset just like they were before!

There aren’t really any settings or options to speak up.

Bookmarks are saved into an XML file called {projectname}.BM in the same folder as your project’s VBP file.

Breakpoints are saved into a {projectname}.BP file in the same place.

Naturally, you should probably not check those files into version control.

New Hotkeys

Sadly, VB6 doesn’t provide many convenient ways of navigating bookmarks and breakpoints, so this addin adds a few.

Ctrl-K – Toggle a bookmark at the current cursor location

Alt-Left or Right – Navigate to the next or previous bookmark

Alt-Up or Down – Navigate to the next or previous breakpoint

These aren’t configurable at this time.

A few interesting bits

None of this is necessary to actually use the Addin, but I’ll mention it for the curious:

First, I make use of my DLLExport utility to actually export the DLLRegisterServer and DLLUnregisterServer functions, so that the DLL can self register with COM, just like a VB6-authored DLL can. With all the other great COM support in .net, this is a really glaring omission. I wrote about that technique here.

Next, I use my “GenerateLineMap” utility to strip line number info from the PDB file and embed it into the DLL. This information is then used during error handling to annotate any stack trace with real source code line numbers, without actually including the PDB as a separate file. This is a technique I’ve worked on for quite some time, and talked about here, here, and here. Still need to get that article written up.

iGoogle Alternative

Filed under Rants, Web

I’ve used iGoogle for ages as a start page, as have many people, so Google’s announcement that they’ll be killing it off late in 2013 came as a bit of a shock.

Ok. No big deal. Surely, there are any number of “Home page” sites out there that can do essentially what iGoogle did.

Well, yes and no.

My first stop was PageFlakes. I’d messed with it several years back, when it was first introduced. But alas, PageFlakes has flaked out and is no more.

MSN has a “home page” type service, but I wasn’t terribly impressed.

Yahoo too. Just really cluttered. I liked iGoogle for it’s simplicity, among other things.

This Might Actually Work

Then I came across a mention of a site called NetVibes. Reading up on it, it looks like it’s more geared toward sys admins that need to keep an eye on statistics about a range of websites, all from a single dashboard. Great stuff, but that aspect costs a few bucks a month.

However, you can sign up for a free account, and set up all sorts of news widgets, RSS feeds, etc, that can populate your home page, just like on iGoogle. It’s got lots of great “ajaxy” stuff like drag and drop positioning, nice configuration GUI’s, a huge theme selection, etc. With the right theme (I chose “World”), it looks almost identical to the clean lines of iGoogle (though it does have an oddly out-of-place top action bar thing going on. Still, not a dealbreaker).

And, I was able to find widgets (or grab RSS feeds) for every single element I had on my iGoogle page.

Plus, it’s really trivial to drop new RSS feeds in place (I do that all the time to watch for specific things for sale on CraigsList).

All in all, a great replacement for iGoogle.

Check it out!

Another Free Text Editor to Give NotePad++ a Run

Filed under Text Editors

imageI’ve used Notepad++ for years now. It’s a great free editor, is reasonably fast, very configurable, and had a fairly wide swatch a features, plus a very nice plugin architecture and quite a number  of nice plugins are available.

If you haven’t checked it out, it’s definitely something to investigate.

However, there are a few elements that I’d grown a little annoyed with, in particular the spell check (or rather a lack of spell check). Now there is a very nice plugin to give it  that’ “red squiggly underline spell check” that most all text-oriented apps have these days, so that’d good. The bad news is, for larger files, that plugin can make Notepad++ drag terribly.

So, I decided it was time to start looking for a possible replacement.

I’m not going to list all the editors I looked out. There’s tons of good editor reviews and lists out there. Googling “Best Free Text Editor” or just “Best Text Editor” will give you plenty of reading material.

But I did want to mention two that I came across and that are quite worthy of further investigation.


The Sublime Editor is a new player. It’s not free, although the downloadable eval is fully functional. You’ll just get nag messages every 50 saves or so.


Sublime looks fantastic. Smooth animations, draggable, tabs, a document map scrollbar, themes, etc. All the standard fair is there, with a big glaring notable exception. They don’t provide ANY kind of configuration UI. Now, I’m pretty comfortable editing config from the confines of a text editor, so it’s not that it’s difficult. But seriously, expecting anyone to put together a set of colors for syntax highlighting using just a text editor is just a bit of a reach in my book. Plus, they want 59$ to register, but registering doesn’t even get you a config UI. And truthfully, for 59$, I can buy a full copy of UltraEdit, which is a far more polished editor, even if it doesn’t look near as good.

Long story short, Sublime is definitely an editor to keep an eye on. In a few years, it’ll be worth looking into again (or the project will be dead in the water, not sure which).

RJ Text Ed

RJ Text Ed has been around for a while, from the looks of it, but I’ve only just now come across it. How did that happen?

Rickard Johansson is the author, and I can honestly say, he’s put a lot of nice work into this application.http://www.rj-texted.se/bilder/main01-100.png

The default screens and colors leave a lot to be desired in my book, but then, I’m more of a White on Black editor kind of guy than black on white, so that’s the first thing I did, change out the theme and all the syntax highlighting colors.

The good thing is, though, that that’s all very easy to do with this editor.

There’s all the things you’d expect: Macros, Syntax coloring, tabs, etc, but then a few things you might not, like a full project system (for grouping sets of files you’re working on), colorable tabs, 2 file explorer windows that are quite capable in and of themselves, simultaneous editing of multiple locations, a function list parser and navigator, the list goes on.

Plus, Rickard seems very active with development, and there’s a fairly active forum he runs at the website.

All in all, a very capable editor and a nice free alternative to NotePad++.

Check it out.

Stop Getting Sprayed by your Pool Cleaner

Filed under Pool

Ok, this isn’t exactly Visual Basic related, but sometimes, I like reading about other little bits and pieces of topics and maybe you do to.

I live in Texas. It’s hot and flat, and so, like a lot of other people around here, we have a pool in the backyard. (No that’s not my pool in the pic, though I certainly wouldn’t mind!).

Anyway, I’d been cleaning it with the tried and true vacuum head on the end of a pole for about 9 years now, and, well, that had started to get old.

I’d done some researching on pool cleaners about 2 years ago and had even sprung for one of those Dolphin robotic cleaners.

Dolphin Electric Pool Cleaner

However, after discovering that the motor, control unit, pump and pretty much the whole thing is sealed up as one unit, and the maintenance essentially means buying an entire new unit if it breaks, I’d ended up returning it, and going back to my pole mounted vacuum.

Then, about six months ago, I came across a really good deal locally on a refurbed Polaris 360. I picked it up, but it sat for about 6 months while I figured out what to do about a booster pump to drive it.Polaris Vac-Sweep 280 Automatic Pool Cleaner (Black)

That opportunity came about 2 months ago, and, using just a few PVC connectors, plus some fiberglass reinforced flexible hosing, I had it plumbed-in and running in a weekend.


These things work really well, are pretty cheap to rebuild and maintain (they do have parts that wear, but pretty much anything mechanical will), and aren’t terribly expensive to run.

But, one thing I ran into pretty quickly was tail spray. Polaris’s have a “sweep tail” that wags back and forth, stirring up dirt on the pool bottom and sides so it is drawn more quickly into the main pool filter.

The problem is that when the thing gets close to the surface, that tail will spray water everywhere, including onto your grill and hamburgers, in your face, all over your windows…. you get the point.

After some searching, I stumbled across an attachment specifically to deal with this, the Polaris Sweep Pro:


(It’s actually just that blue clip thing with the sponge on it at the end in the picture)

You can find then online for 19$, so they’re not cheap (even though it’s basically just foam and a piece of plastic).

But, surprisingly enough, it works great and completely prevents your backyard from becoming a big game of “dodge the squirt gun”.


Filed under Rants

Ted LogoJust came across an excellent talk by Jason Fried (founder of BaseCamp") at TED. It’s a few years old, but not less pertinent.

The basic idea is that the office is a terrible place to actually get any work done.

Good stuff.