« first day (2083 days earlier)      last day (1097 days later) » 
00:00 - 20:0021:00 - 00:00

9:25 PM
bah, left my laptop at work. i'll try to remember to check when I get home.
 
@M.Doerner doesn't that vary with the hosts?
 
I'll test, but I do not see why it should.
The more I attach the debugger to an office application, the more I think that the executables are all caps to make them easier to find in the attach debugger dialog.
Access is the same as Excel.
However, it does not show the file extension.
 
9:48 PM
Yeah, but on the other hand, you will never have an unsaved VBA project in Access host as you would an Excel or Word host.
 
In Access, the PE also does not show the file extension.
 
Yes, I see that, too. However, showing the extension would be an improvement and is essentially free since FileName ought to succeed all the time in Access host.
 
10:29 PM
@this yes ref gives you the pointer, but C# doesn't let you use ref and params together
so then you lose the varargs you also need for it to work correctly
let me try to find the SO post where I got it from
 
add an attribute, [ManualOverride] and it'll work.
 
this is one that explains what i think is a solution but i would be very lying if i said i got it: stackoverflow.com/questions/10905043/…
cant find the one that told me what the IDL needed to look like :/
i got the part about needing a pointer to the pointer i got of the array copy
but getting a safe array of variants or getting a pointer to another pointer are lol above my head still
 
What a big stinking pile. — Zack Jul 28 '15 at 21:42
Seems to sum it up.
FWIW, we do have a manual marshaler.
 
^ quite well
RD does?
 
10:37 PM
is that custom implementation of the Marshal class itself? FreeHGlobal() is a method i remember from it
 
RdMarshal is just a Marshal with logging.
 
you can safely replace all RdMarshal with Marshal
 
Microsoft doesn't expose an implementation of the VARIANT structure, so you have to define your own: limbioliong.wordpress.com/2011/09/19/…
oh that is why you poitned me to the RD marshaller
 
:)
 
10:39 PM
i see you defined an equivalent there
 
Not me.
 
you know what i mean :)
you have admin priv on the github so
 
Sure but I didn't write that code myself. That credit goes to Wayne Phillips.
He's the C++ guy who helped us a lot with some harder parts of COM interop.
He even wrote his own compiler to generate COM binaries that can be stored in VBA.
 
sorcery.
 
10:41 PM
IIRC he’s the one who holds the knowledge for the #BlackMagicIncantations.
 
well as far as I can tell, arrays and "harder parts of COM interop" are basically synonymous
 
lol
not sure anything about COM is easy.
 
pronouncing it :)
 
LOL
<Mr. Rogers>Can you say "COM", kids? Very good!</Mr. Rogers>
 
^
"So main variant should be VT_VARIANT | VT_BYREF, it should point to another variant VT_UI8 | VT_ARRAY, and that should point to a SAFEARRAY generated via SafeArrayCreate(). That outermost variant should then be copied into a block of memory, and its IntPtr sent to the Invoke method."
so this is the IntPtr that the custom marshaller needs to return from IntPtr ICustomMarshaler.MarshalManagedToNative(object ManagedObj)
does someone want to implement this for me puppy dog eyes
@IvenBach wait what are those lol
 
10:55 PM
I thought i'd ask -- has anyone ever found a tool that converts Word to sane HTML and preserves the anchoring behavior?
 
11:06 PM
@theVBE-it'srightforme that’s how he got line numbers to display with his tool. this had more experience with it than I do.
VB Watchdog is the name.
 
@IvenBach yes, yes he is
 
11:27 PM
@IvenBach i love how C/C++ is still the most fundamental language for programming on windows
can't really get around what the OS in written in can you
 
In the end, most things are basically C/C++ at the lowest level.
 
I think so, unless they wanted to write assembly directly.
 
@M.Doerner laughs in Chris Sawyer
 
Just had a look. It is all C.
 
11:31 PM
is C the lowest level mainstream programming language then
 
C is basically just a thin blanket over the raw hardware.
My completely uneducated guess is, yes.
 
@M.Doerner yes that is how i was translating it lol
 
FWIW, there are people who are trying to write new OS using more modern languages like Rust.
 
For some microcontrollers, people might actually resort to hand-craft assembly of some dialect.
 
11:34 PM
I guess what they emit also does not look so much diferent from something coming out of C.
 
if the hardware is the hardware its all gotta be basically the same at some point
 
No. That's why they like Rust so much. It's basically C# but for C instead of C++
^^ It's all ones and zeroes.
(well, there was a 2. Maybe.)
 
Oh, you can have the most strange calling conventions if you hand-craft.
 
btw on the topic of C# and C++ i love how everything in "managed" code is still unmanaged at some level
 
It is actually not that hard to decompile assembly to C, if you have seen it a few times.
Well, somebody has to implement the garbage collector.
 
is the GC the runtime, though? I am not sure what else runtime does but I doubt it's just GC.
 
it just makes the distinction between "managed" and unmanaged a lot clearer for me
 
Or in general the runtime.
It does a lot of stuff.
 
GCHandle prmHandle = GCHandle.Alloc(ManagedObj, GCHandleType.Pinned);
IntPtr prmManagedAddressInUnmanagedMemory = prmHandle.AddrOfPinnedObject();
^ you can tell what this does right?
 
For me, the mental construct that works is that managed code basically mean it's running in a virtual machine, but I use the term "virtual machine" very loosely, nothing like virtualization.
 
11:38 PM
E.g. it also does the JIT compilation.
 
@this yes that is literally exactly how i viewed it after i wrote the code block above and realized what was actually going on
 
You could say it's Java done right. <wg>
 
Java even calls it a virtual machine.
 
@this somewhere some MS executive just shed a tear of joy and doesnt know why
 
lol
@M.Doerner yes but JVM really doesn't mean the same thing when most people talk about virtual machines.
 
11:40 PM
tbh virtual machine is obnoxious phrasing for java
its essentially just a sandbox
 
I think C# just had the advantage of becoming widely used later than Java.
@this I know.
 
@M.Doerner and having less shitty syntax
 
It's a bit ironic since JVM is much older form of virtualization but it didn't get as much attention.
 
and being backed by a slightly less shitty company
 
less?
 
11:41 PM
They could add some substential improvements because there was not as much oush back.
 
I think you mean the other way around.
 
@this Oracle is better than MS?
 
No. In my estimation, worse.
 
yeah that is what i meant
that was an advantage C# had
 
(e.g. more shitty, not less shitty)
FML
 
#ReadingComprehensionFailure
 
i was so worried i was wrong about that haha
i was like very confident oracle was worse
tbf to you the messages were not super clear
anyways...how do i use that VARIANT struct thing you defined in the RD marshaler
i dont actually get what im doing here with it
i do get what I was doing yesterday with intptr
i got i need to copy the managed array to unmanaged, then get a pointer to it, then get a pointer to that pointer
"If a non-blittable class is marshaled by reference, the callee receives a pointer to a pointer to a copy of the data structure." from the MS documentation on Copying and Pinning
 
Sorry but it's nearly dinner time and I need to step away for a bit.
I had understood that you needed to execute the Invoke
and in order to do that, you must perpare the args before you invoke the member on the IDispatch interface.
 
oh that is fine
i will bang my head against the wal for a bit and see if i break through
its been relatively effective recently for some reason
hopefully i can just tell you it is working when you come back later :)
 
00:00 - 20:0021:00 - 00:00

« first day (2083 days earlier)      last day (1097 days later) »