MCPcopy Create free account
hub / github.com/TortoiseGit/TortoiseGit / DllGetClassObject

Function DllGetClassObject

src/TortoiseShell/TortoiseGIT.cpp:119–164  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

117}
118
119STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppvOut)
120{
121 if (!ppvOut)
122 return E_POINTER;
123 *ppvOut = nullptr;
124
125 FileState state = FileStateInvalid;
126 if (IsEqualIID(rclsid, CLSID_Tortoisegit_UPTODATE))
127 state = FileStateVersioned;
128 else if (IsEqualIID(rclsid, CLSID_Tortoisegit_MODIFIED))
129 state = FileStateModified;
130 else if (IsEqualIID(rclsid, CLSID_Tortoisegit_CONFLICTING))
131 state = FileStateConflict;
132 else if (IsEqualIID(rclsid, CLSID_Tortoisegit_UNCONTROLLED))
133 state = FileStateUncontrolled;
134 else if (IsEqualIID(rclsid, CLSID_Tortoisegit_DROPHANDLER))
135 state = FileStateDropHandler;
136 else if (IsEqualIID(rclsid, CLSID_Tortoisegit_DELETED))
137 state = FileStateDeleted;
138 else if (IsEqualIID(rclsid, CLSID_Tortoisegit_READONLY))
139 state = FileStateReadOnly;
140 else if (IsEqualIID(rclsid, CLSID_Tortoisegit_LOCKED))
141 state = FileStateLockedOverlay;
142 else if (IsEqualIID(rclsid, CLSID_Tortoisegit_ADDED))
143 state = FileStateAddedOverlay;
144 else if (IsEqualIID(rclsid, CLSID_Tortoisegit_IGNORED))
145 state = FileStateIgnoredOverlay;
146 else if (IsEqualIID(rclsid, CLSID_Tortoisegit_UNVERSIONED))
147 state = FileStateUnversionedOverlay;
148 else if (IsEqualIID(rclsid, CLSID_Tortoisegit_EXPLORERCOMMAND))
149 state = FileStateVersioned;
150
151 if (state != FileStateInvalid)
152 {
153 CShellExtClassFactory *pcf = new (std::nothrow) CShellExtClassFactory(state);
154 if (!pcf)
155 return E_OUTOFMEMORY;
156 // refcount currently set to 0
157 const HRESULT hr = pcf->QueryInterface(riid, ppvOut);
158 if(FAILED(hr))
159 delete pcf;
160 return hr;
161 }
162
163 return CLASS_E_CLASSNOTAVAILABLE;
164}

Callers

nothing calls this directly

Calls 1

QueryInterfaceMethod · 0.45

Tested by

no test coverage detected