« first day (1316 days earlier)      last day (1864 days later) » 
00:00 - 17:0017:00 - 00:00

12:00 AM
RELOAD!
[rubberduck-vba/Rubberduck] 15 commits. 5 opened issues. 1 closed issue. 24 issue comments. 38421 additions. 10241 deletions.
[Zomis/FactorioMods] 14 commits. 380 additions. 131 deletions.
 
12:22 AM
Is there a reason why the MockProjectBuilder does not assign the ProjectId automatically?
Hm, probably to test that the parser does not fail on that.
Hm, seems as if NUnit's Assert.Contains does not unterstand tuples.
 
@IvenBach You got it :(
@this Look at this beautiful thing you helped me do:
Private Function InitialErrorsFound() As Boolean

    Select Case True
        Case _
            AllReportsInSetAreNotTheSameType, _
            MaximumSourceReportsAtOneTimeExceeded, _
            OtherExcelFilesAreOpen, _
            SourceReportsPresentFromMultipleWeeks
                InitialErrorsFound = True
        Case Else
                InitialErrorsFound = False
    End Select

End Function
That's great, I really like it. Thank you!
 
12:41 AM
I guess the problem is that the tuple support in C# is not yet complete.
Ah, that is the problem. My tests fail because for all the mock objects Equals has not been set up.
 
1:11 AM
@Duga I'm posting another, non-class module example tonight.
 
2:01 AM
Ah @Vogel612 when you have a moment for me, please assist me in how you found out a product was excluded and how this link to security mattered. I looked at the provided link and gone around in circles not understanding the context that this feature is removed among these risks...
 
@puzzlepiece87 Yeah, it's very easy to add more conditions in that way. FWIW, Case Else is kind of redundant because the default value for the boolean is false.
 
> As I deal with broken projects and sprawling hand-me-down codebase, I'm very annoyed that I can't even use code explorer *unless* the whole project can parse, forcing me to have both CE and PE open, which feels a bit silly and awkward.

Code explorer ought to support graceful upgradation* - instead of requiring a parsing to use it, it should start with only basic information that is already exposed in the PE which is easily had by enumerating the `VBProjects` + `VBComponents`. That would at
 
2:41 AM
@puzzlepiece87 It's only just begun.
 
> Just to add - I agree that the initial sample smells but this shouldn't smell:

```
#If LateBind Then
Dim FSO As Object
#Else
Dim FSO As Scripting.FileSystemObject
#End If

Set FSO = CreateObject("Scripting.FileSystem")
```

Keep in mind that in current implementation, the above code is perceived by RD exactly same as the original sample, assuming the `LateBind` is set to false. The inspection should not raise in this case, though it might be hard given that we are given only one "
> We'd need some kind of "pre-parser" service that could spit out a bunch of temporary Declaration instances that the ViewModel could consume... and this means inserting an abstraction between the ViewModel and the parser state declarations, because we wouldn't want these "temp declarations" to interfere with parser state. IOW it's more complicated than it appears to be.
> @bclothier nobody is forcing anyone to act on inspection results, or to apply available refactorings... IMO this has all looks of a "thanks ducky, I know what I'm doing" case, where you'd just ignore the given hint.
 
3:06 AM
@Duga IDK about others but when I see thousands of results, it make me sad and also more likely to ignore the inspection altogether. OTOH, I'm probably setting the bar too high in asking for accurate analysis that accounts for 100s of edge cases. ;)
 
@this a lot of RD inspections aim to avoid beginner problems
 
Yeah, that makes sense. I'll keep that in mind.
 
edge cases involving conditionally compiled code will end up handled... eventually :)
 
hopefully "soon" doesn't mean 5 years. :) Can you tell I'm the patient sort?
but right now, i'm just glad that Max and Wayne did great strides in getting crashes under control.
 
^
that's 2 years of headscratching, fixed
and I need to get @WaynePhillipsEA a t-shirt
(bribery gets me a vbWatchDog license, does it not?)
(half-kidding)
 
3:15 AM
IIRC, MVPs can get NFR licenses.
 
NFR?
 
Not For Resale
 
oh
 
IOW free
but for personal use only
 
aye
IIRC MZ-Tools is also free for MVPs
but I'd feel bad to get that one - too much of a direct competitor
 
3:17 AM
Yes. There's a number of companies that offer NFRs.
 
3:47 AM
@this do you know if there is any formulas in Excel with select case? I know switch() but only from 2016 up. I have 2013.
 
@PeterMTaylor IDK. I'm not exactly an Excel guy. Curious that they didn't have Switch() until recently - Access has had Switch() and also Choose() for a while. That said, if you have complex conditionals, you probably want to use VBA instead of formulas and reference that from your formula, no?
 
Choose exists in Excel, but I've yet to figure out a clever way to make it useful
 
@PeterMTaylor Charles William's site covers a lot of the Excel functions and tells you which ones short-circuit.
 
does it work similarly --- sb like Choose(aLameNumber, doThisIfItsOne, doThatIfItsTwo,...,AwToHellWithIt)?
 
@this exactly like it
 
3:55 AM
FWIW, I never used it, either.
Switch() on rare occasions, yeah.
 
perhaps as some kind of a hard-coded "vlookup", I guess
 
which only enhance its lameness.... :p
 
@Vogel612 Actually, AIUI, they removed the legacy version of Equation Editor from Office. There's been a new Equation Editor in Office since Office 2010. The compromised Equation Editor was only kept around to allow people to edit files created with it. Granted, there are still old files that might require editing, but IDK what MS is offering in terms of support for that...
 
Hey - I merged with the latest. I'm unable to compile successfully. The message is: Severity Code Description Project File Line Suppression State
Error CS1617 Invalid option '7.2' for /langversion; must be ISO-1, ISO-2, Default, Latest or a valid version in range 1 to 7.1. Rubberduck.SettingsProvider C:\Users\Brian\Documents\GitHub\VisualStudioProjects\Rubberduck\Rubberduck.SettingsProvider\CSC 1 Active
 
4:01 AM
@BZngr you need to update your VS to 15.5 - we talked about that earlier today
because the next is using C# 7.2
 
OK - thanks. I'll get that done.
 
Ok, Excel guys, I have a question for you -- how comfortable are your average users with a.xlsm or .xlsb files?
 
?
as uncomfortable as they are with a .xls or .xlsx file
or any file for that matter
 
Rephrase - do they freak out if they see the yellow exclamation icon and the yellow bars all over when opening those files.
 
nah
 
4:03 AM
No training?
 
well..
 
Ok, so at least they have to be reassured the first time.
 
TBH my fully idiot-proof order form displays a huge "MACROS ARE CURRENTLY DISABLED, FUNCTIONALITY IS LIMITED" banner if it's opened with macros disabled
well not huge, but not quite subtle either
 
Was just curious if my experience is biased because when I deal with Excel as reports, they do not like it very much if files contains those kind of alerts; so we distribute .xlsx files as a rule to avoid those kind of stuff.
 
yeah a lot also tend to open workbooks directly from email attachments
...and end up wondering why they have tons of broken links to "cryptic locations" in their stuff
 
4:07 AM
ah yeah. Those are fun.
 
actually they don't even realize their links are broken, they just ask me why their formulas aren't working
"it worked fine yesterday!"
 
so even if they use lot of Excel files, they're still illiterate even with formulas?
 
most have been using Excel every single workday of their lives for over a decade, and still have no clue
 
.... wow. I knew users could be clueless but TBH I just can't imagine not noticing formula bar at least once in a decade.
 
oh, they know there's a formula bar
some can do a SUM
 
4:11 AM
I exaggerate a bit.
 
99% don't understand VLOOKUP. INDEX+MATCH is simply out of the question
I love the look on the face of the remaining 1% when they realize there's an HLOOKUP as well
 
And yet I would bet they would describe themselves as Excel power users. (At least in an interview).
 
haha
> Of course I know Excel!
aka
 
Sometime ago, we had an argument over how widespread basic Excel skills were. I was arguing that far more people know how to do SUM and VLOOKUP than they do a VBA function by an order of magnitude or two.
 
> Of course I know what the Excel icon looks like!
 
4:14 AM
...unfortunately, I was serious.
 
@this or ten
 
@this Only a few wander into VBA - I would agree you.
 
@Mat'sMug, sure. I think very relatively few people even get as far as VBA. What I thought was that anyone who has used Excel daily would know something about VLOOKUp
 
yeah. and pivot tables.
 
So you'd say that VLOOKUP and Pivot Table are known by people on tenth order of magnitude above basic VBA? Because earlier you were describing users who use it for decade and are still baffled at VLOOKUP.
 
4:19 AM
huh? no I'm just saying essentially no one using Excel on a daily basis ventures into VBA
 
Many/most aren't even aware it exists - I think.
 
Sorry if I wasn't clear. I was trying to gauge how many people who use Excel on a daily basis actually know how to do a VLOOKUP or create pivot table.
 
e.g. out of 200 people in an office, a dozen will be legit power users, 1-3 will know some VBA
 
I would agree with those numbers.
 
That's not quite a tenth order of magnitude (if we extrapolate to general populace).
 
4:22 AM
factor in the 300 in the factory/distribution center on the floor under the office, and you have it :)
 
Clarify those on the floor use excel?
 
that would be the supervisors only IME
9 mins ago, by Mat's Mug
@this or ten
^^ wasn't meant literally...
 
No worries - As I said, I was just curious to see if my perceptions were skewed when I expected roughly 10x people to know basic Excel over those knowing VBA.
Because it's weird when I am given a bunch of excel spreadsheets to clean up and when I give them a xlsm they go all "woah woah, we ain't touching that!"
(that was years ago, though. Ever since then, I've always given them xlsx)
 
basically it's like if in the process of doing your job you needed to use, say, a screwdriver. So you're given a drill with a set of 35 tips, and all you ever do with it is stick the pointy end onto a screw head, and then run in circles around it
until a "power user" sees you and says "you know, it would be much easier if you pressed that button here"
 
:)
 
4:29 AM
Pretty good analogy.... unfortunately. :p
 
and then one in ten would be "yeah, but I don't like it, it's easier to control when I run in circles around it"
 
"and I hit my move goal"
 
#FitBit
 
I'm back in business with 15.5. Life is better when your code compiles.
 
isn't it!
 
4:32 AM
if only it would always 'work' now....
 
if they do decide to release C# 7.3 let's let it sit for a bit, ok?
 
@this YES
I mean, agreed, absolutely
CC @Hosch250
 
 
lol
 
When I run all the unit tests, I now get a one failing test...EmptyIfBlockInspectionTests - the InspectionType test. Trivial to fix...but I'm wondering if the test failure showed up earlier?
 
4:42 AM
Not for me but that was on previous merge
Besides, AV wouldn't have built if it failed there....
 
yeah...that's why I'm kind of scratching my head. (Not sure what 'AV' is exactly, but I am assuming it the automated testing..Duga)
 
"AppVeyor" (the thing that does building and prepares new releases -- Duga reports on its progress)
 
Ahhh...thanks
 
wait, I'll be darned!
It did fail!
 
It shows a single test failure.
Yeah
 
4:46 AM
@Mat'sMug is AV supposed to proceed with building if test fails?
I thought it wouldn't?
 
@this color me confused
Must be CodeCov configuration
@Vogel612 set it up
I don't understand... the build should fail given a failing test
 
5:06 AM
fixed casing

shouldn't affect anything, but "Retailcoder" is already confusing Git...
[rubberduck-vba/Rubberduck] build for commit 324a3aff on next: AppVeyor build succeeded
[rubberduck-vba/Rubberduck] build for commit 324a3aff on next: 72.18% remains the same compared to c380cd6
[rubberduck-vba/Rubberduck] build for commit 324a3aff on next: Coverage not affected when comparing c380cd6...324a3af
 
@this That's the visual representation of me at work now...
 
@Duga another weirdness... I thought .yml changes were ignored
 
I know
 
I already checked out the blame history.
 
5:21 AM
I'm pretty sure that's because CodeCov is hijacking the test run
 
That's been really the only change.
 
I mean, CI builds were failing on AppVeyor given a failing test
I love test coverage reports, but if it means broken builds going through, not so much
 
I know with AV passing and coverage failing it gives the correct results for AV.
 
@Mat'sMug, I doubt your recent release fixed the casing. I still see the Retailcoder on GH page.
 
@this that was just in the .yml file
> shouldn't affect anything
 
5:33 AM
oh, misread to mean you were fixing the bad casing w/ the resx file. My bad.
 
 
1 hour later…
6:46 AM
posted on January 12, 2018 by Rubberduck VBA

So you've written a beautiful piece of code, a macro that does everything it needs to do... the only thing is that, well, it takes a while to complete. Oh, it's as efficient as it gets, you've put it up for peer review on Code Review Stack Exchange, and the reviewers helped you optimize it. You need a way to report progress to your users. There are several possible solutions...… Continue

 
ugh. 3rd day in a row I'm out @2AM
'night
 
6:58 AM
The Reusable Progress Indicator https://rubberduckvba.wordpress.com/2018/01/12/progress-indicator/
 
7:45 AM
Woopsie: the cancellation mechanism needs fine-tuning... but I need some sleep. Will update soon.
 
8:10 AM
@Mat'sMug actually, I'm pretty sure it's OpenCover... why the heck is that not failing though...
 
8:56 AM
@this @Mat'sMug Then there are those that understand Excel, VBA, Win32, COM and .NET. There's roughly 37 in 7 billion, of them.
 
 
1 hour later…
10:16 AM
@BloggingDuck Love it, that was very insightful and helpful. Thanks @Mat'sMug!
 
11:03 AM
any help appreciated
 
@ThunderFrame I remember reading somewhere, "All people in the world comfortable with writing a device driver would fit comfortably in a single room."
 
Maybe into ProgressIndicator a Let like
Public Property Let IsCancelRequested(ByVal vNewValue As Boolean)
this.cancelling = vNewValue
End Property
And into DoWork
If progress.IsCancelRequested Then
Dim vbMsgBoxRes As VbMsgBoxResult
vbMsgBoxRes = MsgBox("Cancel this operation?", vbYesNo)
Select Case vbMsgBoxRes
Case vbYes: Exit Sub
Case vbNo: progress.IsCancelRequested = False
End Select
End If
?
@this I was working yesterday night on a Bosch BME280 chip, setting registers and reading libraries to try to extract useful code and I can truly support that statement.
 
11:34 AM
fix AV passing with failing tests

Also reinstates the ignoring of *.yml files for changes
> Also reinstates the ignoring of *.yml files for changes
 
@Duga @Mat'sMug this will not trigger an AV build, so the status check won't be going unless you explicitly can trigger it
otherwise, you could just merge it ;)
 
11:47 AM
it should fix the problem ...
 
12:14 PM
Merge pull request #3698 from rubberduck-vba/AV-Fix

fix AV passing with failing tests
 
@NelsonVides yeh something like that
@SMeaden lol you beat me to it... again ;-)
 
12:43 PM
@Hosch250 I made it fairly clear in the email that I didnt want my boss to know just yet. I dont mind telling him in general, but again I just dont want to rock the boat for no reason. If the compensation is at a level where I would apply, I would tell him before applying. Its not a situation (thankfully) where I feel like there would be any issues if it was a position I intended to pursue and accept.
I mean, there would be some concern on the team, and we would need to take care of those, but he wouldnt be angry or anything.
 
 
1 hour later…
2:11 PM
@this :(
It's catching up with R# in the test explorer.
Also, I think 8.0 is after 7.2. I haven't heard anything about a 7.3 yet.
And I'm not sure if we can compile 8.0 to target .NET 4.5, so we'll have to wait and see.
 
2:31 PM
Would anyone mind if I implemented Equals on our wrapper mocks as ReferenceEquals and the GetHashCode as that of the object?
 
@M.Doerner Kind of.
Because if it's a class, reference equals is the default.
 
Apparently, Moq's standard implementation is to return false for Equals and 0 for GetHashCode.
 
Ohhh, the wrapper mocks.
Sorry, go ahead.
 
I really think those defaults are a bit surprising.
 
Well, not really.
 
2:34 PM
Hey, anybody knows the difference in VBA between fixed-length strings and normal strings? I can't find any documentation about this...
 
I bet they didn't special case those, so they are just returning default(bool) and default(int).
 
Fixed length ones are padded to the given length, I think with whitespace.
You can find the specifics in the VBA specification.
We have a link to it in the wiki.
@Hosch250 Makes sense, but it is surprising non the less.
 
3:02 PM
> Same issue.

Shortcut Ctrl+C in Rubberduck default Settings is set to "Code Explorer".
Also Ctrl+M is set to Ident and is VBE-Standard "Import Module" in Files.

Excel Version 14.0.7912 32Bit **German**
Rubberduck-Version 2.1.2.2718
> @kwnwzlnd the indenter hotkeys match the original Smart Indenter add-in's hotkey mappings, that's by design. .2718 should have the CE default mapping back to Ctrl+R though... :confused:
 
@this I agree with Mat's assessment about Excel users and their competency, that's been pretty much my experience also
@Mat'sMug Thanks for the new blog post, will add it to my reference guide for the team :)
 
3:18 PM
cheers!
 
Great job, @IvenBach. Just not sure about one of the file changes and the tests can be simpler now that we have NUnit.
 
oh ffs...
don't search for YCSB on twitter...
what the shit ..
 
> Now that we have NUnit, we should go through our tests and convert some to be data-driven tests.
 
3:29 PM
@Vogel612 What's YCSB?
 
@Hosch250 the benchmark system for databases that I'm porting a ton of db adapters to
 
And it's something else too?
 
C# 7.3 is on the books with some interesting features, but nothing is finalized: github.com/dotnet/roslyn/blob/master/docs/…
 
3:31 PM
@Hosch250 apparently it's somehow linked to p0rn....
 
:/
I'm kind of ticked now.
I'm supposed to merge a new feature and a refactor into a single checkin to combine the migrations.
Personally, having a clean separation is more important than having a single migration.
 
depends. ...
migrations are easier to control assuming you have a single point of failure
 
Hmm?
We just run them against the DB...
 
figures. what do you do if one intermediate migration fails because prod data is different from test data?
 
And I don't know which single point of failure you are referring to. We have a zillion of them :P
@Vogel612 Fix it.
 
3:34 PM
right... in the middle of downtime?
 
But this isn't related to data, it's just changing the keys to not be identities.
 
hmm ... I think it's a principle idea
 
OK.
 
consider a standard deployment update process:
 
More likely, if we have that issue, we cancel the deploy.
 
3:35 PM
1. down the web-tier
2. copy over new web-tier version
3. backup db
4. db migrations
5. start up web-tier
you don't want 4. to be multiple steps, to prevent "missing one"
 
@Vogel612 We don't down.
 
that's fancy, but I don't believe you ...
 
The only thing that goes down is any pages that call code where the DB changed.
Most pages don't go down during deploys.
 
so you have a rolling deploy for web-tier?
 
I'm not sure. You'd have to ask dev-ops.
But we don't have downtime most of the time.
We will for sure this time because we restructured part of our DB that affects everything.
 
@Duga woopsie, that's what I get for reading just the issue title
 
I ain't labelling that for nuthin
;)
 
3:53 PM
hi @WaynePhillipsEA!
 
hi all. @Mat'sMug, @M.Doerner, @this... it occurred to me that really the only reason for wanting to use a shim now is to protect against other managed addins incorrectly disposing of shared RCWs that RD may also be holding on to...
And it appears that there is a neat way around this, without a shim.
 
ooh
 
uniqueRCW = Marhsal.GetUniqueObjectForIUnknown(Marshal.GetIUnknownForObject(normalRCW))
GetUniqueObjectForIUnknown returns a unique RCW, not shared by anything else
 
@WaynePhillipsEA definitely sounds like a plan!
so we need to do this for all RCW's?
 
just thought I'd share it, as it might be simpler than having to write and maintain a shim.
 
3:56 PM
agreed
 
I would guess it should work in your wrapper class
 
yeah
 
the problem might be that you end up with thousands of unique RCWs for the same object, if you're not careful
 
    protected SafeComWrapper(T target, bool rewrapping = false)
    {
        Target = rewrapping ? target : Marhsal.GetUniqueObjectForIUnknown(Marshal.GetIUnknownForObject(target));
 
which might hurt memory/performance
Yeah, that looks right
 
3:58 PM
that could be your first official PR :)
wink-wink, nudge-nudge
 
haha, well I guess it could. maybe wait see what @M.Doerner thinks first, as he seems to know this wrapper code well ;)
Actually we probably need to release the ref count manually too, on the original RCW, because GetIUnknownForObject increases the reference count
 
ha, good point
 
but other than that, it should work.
 
@NelsonVides I've updated the post
 
@WaynePhillipsEA but aren't we still taking a reference to the "shared" RCW via the Marshal.GetIUnknownForObject?
 
4:09 PM
Yes, but you're not relying on it in future. At the point you receive it, you know it's valid, and then immediately turn it into a unique RCW
 
I think a shim would protect against a few more things, e.g. age instead tearing down the host on an unexpected exception.
 
@Mat'sMug Excellent, this will look gorgeous on my AlmightyInvoiceClassifier :D
 
I have to say that I am not too comfortable with the explicit COM management.
 
@NelsonVides note I'm not exposing a mutator for the IsCancellationRequested property (it wouldn't make sense for the worker code to be able to do progress.IsCancellationRequested = True)
 
@Mat'sMug looks totally fair, I was thinking precisely that
 
4:14 PM
Once we have eliminated our other shutdown issues, I would still like to try to get a shim running.
 
@M.Doerner I agree, we need to first get shutdown & restart working fine before we obscure all-that-could-possibly-go-very-very-wrong behind a shim
and FWIW COM/RCW interactions are confusing AF
 
Exceptions in the managed world shouldn't spill over, but instead will be propagated as COM exceptions to the host. The host shouldn't blow up unless it's an AV or similar, in which case it probably didn't come from any managed code
Naturally, I'm talking about once the COM stuff is all being released appropriately
 
@WaynePhillipsEA AV = antivirus, right?
 
sorry AV=access violations
 
makes sense - was wondering how AntiVirus could cause it to blow up. :)
 
4:21 PM
I don't believe the shim will do much for you, once your COM interop is tight, and if you were to use unique RCWs. But that said, it wouldn't hurt either.
 
FWIW I was kind of wondering why they stopped updating COM Shim wizards since 2010
 
^^^
that
 
The shims have got the potential to hide a lot of issues. Issues that can, and mostly already have been, solved more appropriately. If you're going to go the shim route I'd suggest not using it for debug, only for release.
bbl
 
later!
looks like we'll be back to manual release builds then
 
Years ago, I was tasked with maintaining a Word add-in. It originally used shim, too. I moved it to VSTO because 1) I was young and foolish and probably didn't understand what it was doing and 2) because VSTO made debugging and diagnosing much easier.
(just remembered - another reason I ended up moving away from shim was because it was written for 32-bit only and they needed it to run on 64-bit Word, too. I think that's what drove the decision to use VSTO - I had no C++ expertise to know what the hell to do)
 
4:35 PM
guys, I'm going crazy, I don't understand what's happening
I have a view that does this:
select * from [Server].Db.dbo.SomeView
when I run that, I get 20 fields
but then when I do select * from [dbo].[ThatView], I only get 19
my whole life is a lie, all this time assuming * stood for "gimme all fields"
spelling out all the fields works
ffs
 
nevermind, fixed. apparently SQL Server caches the fields returned by a view that does select *
note to self: select * is actively harmful
 
@Mat'sMug sadly closes Google.
 
@Mat'sMug yes, never ever do *
 
I was all excited, I was like "Yesss I know SQL, it's helping Mat's Mug time!"
(You probably know SQL much better than me but I knew enough to give it a shot :P)
 
4:43 PM
As a practice, I enumerate all fields, even if it's the same as *. That also aids in debugging because it makes the missing column more obvious
 
I've never, never had a problem like this occur before
 
You got lucky
 
@this Your life is endless typing, isn't it? :(
I've never had that problem before either, and now I feel grateful.
 
@this lol
 
If I had to write out every column every time I wanted to look at a complete table, I'd want to end it right here at my desk.
 
4:45 PM
@puzzlepiece87 You think I type them out?
It's no different from a Scotsman saying "ain't seen no black sheep ever in my life!"
 
@this What do you do, shift select them all from the explorer and drag them over?
Or do you do "Generate SQL"?
 
no, I use Script As -> somethign -> To Clipboard
 
Ah
That sounds manageable thankfully
@this Separate topic, VBA has taught me to always be explicit.
 
as an example suppose I have to insert into a table from a staging table -- my process goes like so:
1. Script As -> INSERT INTO -> To clipboard
2. Delete the auto-generated VALUES part
3. Script As -> SELECT -> To clipboard
4. Paste to the place where the VALUES was
5. Tweak as needed
Yes, it's a necessity with loosey-goosey language like VBA who loves to surprise us with its delightful black voodoo implicit conversions.
 
4:49 PM
@puzzlepiece87 In the trenches but I'll get caught back up once it's over. :Gasps-for-air-and-dives-back-under:
 
@this Good, thanks for teaching me this.
 
@this Funny thing is, VSTO uses a shim internally.
 
@M.Doerner correct. Our life would be much easier if VSTO works for VBA add-ins, I think.
 
@this MS Connect request: port VBIDE API to VSTO?
 
I believe the original developer used a shim to avoid having to distribute VSTO runtime which increases the installation by a significant size.
You'd think so, @Mat'sMug.... You'd think so. I mean they even had this project going for a bit where you could interoperate VBA with .NET
Oops, we just killed it. Just kidding, guys! Ha ha ha!
 
00:00 - 17:0017:00 - 00:00

« first day (1316 days earlier)      last day (1864 days later) »