GetHeadPosition(); Position; AudioPinList

Site Navigation.
Tag: ATL.

Range-based for with ATL Collections

Posted on May 30, 2015May 29, 2015 by ATL collection classes did not receive an update related to new C++11 range-based fors and other fancy features.
Well it’s a pity because writing for(auto&& pPin: AudioPinList) pPin-> //… compared to for(POSITION Position = AudioPinList.
GetHeadPosition(); Position; AudioPinList.

GetNext(Position)) { IPin* pPin = AudioPinList

GetAt(Position); pPin-> //… is indeed a relief

Namespace std is, of course.

Good but… Read the full article Three ways to implement VBScript (VB6

VBA) callback from C++/ATL class.
Posted on August 11, 2012August 11, 2012 by Suppose you have an automation object that needs to implement a callback into caller Visual Basic environment, which can be Scripting Host, Visual Basic for Applications, ASP etc.
With all the late binding in VB scripting and so much different C++ code – how to put everything together.
There are great choices, let us have… Read the full article LogProcessExceptions: Log Service Process Exceptions.
Posted on April 29, 2012April 28, 2012 by One of the nasty issues with LogProcessExceptions utility was that it was unable to attach to service processes and track them to catch their exceptions.
The actual problem was that the processes were not listed in first place, so there was nothing to attach to.
Access and security requirements necessary for a process to debug… Read the full article Enabling ATLTRACE output in Release configuration builds.
Posted on April 1, 2012April 1, 2012 by The original intent is pretty clear.

As MSDN states: In release builds

ATLTRACE2 compiles to (void) 0.
As simple as this, but once in a while you are in a situation where release build fails to work for unknown reason and you need additional information for troubleshooting, .

And then you remember that you had debug… Read the full article

Posted on by.

Posted on by ATLENSURE_SUCCEEDED double failure

Posted on July 19, 2011July 20, 2011 by A colleague pointed out that code snippet in previous post is misusing ATL’s ATLENSURE_SUCCEEDED macro making it [possibly] evaluate its argument twice in case of failure, that is evaluating into failure HRESULT code.

As it is defined like this: #define ATLENSURE_SUCCEEDED(hr) ATLENSURE_THROW(SUCCEEDED(hr)

hr) It does things in a straightforward way, for a code line ATLENSURE_SUCCEEDED(pFilterGraph.
CoCreateInstance(CLSID_FilterGraph));… Read the full article ← Older Posts Theme: by Danny Cooper.