@Override
	boolean apply(AbstractMsType type) throws PdbException, CancelledException {

		AbstractPointerMsType pointerMsType = (AbstractPointerMsType) type;
		// Doing pre-check on type first using the getDataTypeOrSchedule method.  The logic is
		//  simpler here for Composites or Functions because we only have one dependency type,
		//  so we are not doing a separate call to a pre-check method as there is in those appliers.
		//  If type is not available, return false.
		RecordNumber underlyingRecordNumber = pointerMsType.getUnderlyingRecordNumber();
		DataType underlyingType = applicator.getDataTypeOrSchedule(underlyingRecordNumber);
		if (underlyingType == null) {
			return false;
		}

		DataType dataType;

		if (type instanceof DummyMsType) {
			dataType = new PointerDataType(applicator.getDataTypeManager());
		}
		else {
			AbstractPointerMsType.MsPointerMode msPointerMode = pointerMsType.getPointerMode();
			switch (msPointerMode) {
				case POINTER:
					dataType = processPointer(pointerMsType, underlyingType);
					break;
				case LVALUE_REFERENCE:
					dataType = processReference(pointerMsType, underlyingType);
					break;
				case RVALUE_REFERENCE:
					dataType = processReference(pointerMsType, underlyingType);
					break;
				case MEMBER_DATA_POINTER:
				case MEMBER_FUNCTION_POINTER:
					dataType = processMemberPointer(pointerMsType, underlyingType);
					break;
				case INVALID:
				case RESERVED:
					Msg.warn(this, "Unable to process PointerMode: " + msPointerMode +
						". Using default Pointer.");
					dataType = PointerDataType.dataType;
					break;
				default:
					throw new PdbException("PDB Error: unhandled PointerMode in " + getClass());
			}
		}

		applicator.putDataType(type, dataType);
		return true;
	}
Comment field if this type is used as a structure member.  This method could go away later
 if we develop member pointers into the Ghidra framework; this method exists to pass some
 pertinent information along to the user
@param type the PDB type being inspected
@return comment string or null
@throws CancelledException upon user cancellation
@throws PdbException upon processing error
Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/PointerTypeApplier.java